【发布时间】:2021-10-16 19:36:08
【问题描述】:
我在 Python3 中创建了一个 MultipleChoice 类,其中第一个参数应该是一个问题,第二个参数是一个带有备选方案的列表(每个条目都是一个字符串,没有编号),第三个参数是正确的数字回答。包含备选方案的列表可能有不同的长度。
我已经创建了这个类,并且我正在尝试创建一个 _str_ 方法来返回问题和问题下的所有备选方案,但这次是编号的。我想要实现的目标如下所示:
question1 = MultipleChoice('What´s best?', ['Mac', 'PC'], 1)
question2 = MultipleChoice('Biggest city in England?' , ['Manchester','Liverpool', 'London'], 3)
print(question1)
print(question2)
预期输出:
什么是最好的? 1 - 麦克 , 2 - 个人计算机
英格兰最大的城市? 1 - 曼彻斯特 , 2 - 利物浦 , 3 - 伦敦
我尝试在 _str_ 方法的 f 字符串中的括号中插入方法,但未成功。我这样做是因为我假设我必须用备选方案遍历列表并为每个条目分配一个类似于索引号的数字,并且认为像这样的更复杂的任务最好在单独的方法中完成(而不是尝试这样做在 f 字符串的括号内。
这也是一项学校作业,所以我必须使用 _str_ 方法来实现。
任何帮助将不胜感激。以下是我目前的代码:
class MultipleChoice:
#Constructor
def __init__(self, question, alternatives, correct_answer):
self.question = question
self.alternatives = alternatives
self.correct_answer = correct_answer
def __str__(self):
return f'{self.question}? \n{self.alternatives}.'
if __name__ == '__main__':
question1 = MultipleChoice('What´s best?', ['Mac', 'PC'], 1)
question2 = MultipleChoice('Biggest city in England?' , ['Manchester','Liverpool', 'London'], 3)
print(question1)
print(question2)
【问题讨论】:
标签: python-3.x class methods printf