0
我有一个字符串格式化的小问题。我想用{}替代答案。当我更改答案时,Thing会正确存储new_answer,但不正确地打印它。它会以某种方式只打印第一个字符!String .format()只返回第一个字符
这是怎么回事?我真的很迷茫..
class Thing(object):
def __init__(self,sentence,answer=None):
self.sentence = sentence
self.blanks = sentence.count("{}")
self.answer = (answer if answer else "___" for i in range(0,self.blanks))
def __str__(self):
return self.sentence.format(*self.answer)
def changeAnswer(self,new_answer):
self.answer = new_answer
def returnAnswer(self):
return self.answer
def test():
thang = Thing("Please put it in the {}.")
print thang # Please put it in the ___.
thang.changeAnswer("BLANK")
print thang # Please put it in the B.
print thang.returnAnswer() # BLANK
test()
非常感谢你,这看起来像真正的交易。你能告诉我为什么我应该避免returnAnswer(或发送给我的页面)? – user2245942 2013-04-30 18:52:44
@ user2245942:这是多余的,并不能真正简化任何事情。当你可以做'print thang.answer'时,你为什么要写'print thang.returnAnswer()'? – Blender 2013-04-30 18:53:15