У меня есть небольшая проблема с форматированием строк. Я хочу заменить {} на ответы. Когда я меняю ответы, 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()
Спасибо, это похоже на реальную сделку. Можете ли вы рассказать немного больше о том, почему я должен избегать возврата ответа (или отправить мне на страницу, которая может)? – user2245942
@ user2245942: Это избыточно и на самом деле ничего не упрощает. Зачем вам писать 'print thang.returnAnswer()', когда вы можете просто сделать 'print thang.answer'? – Blender