我有一个课程菜单
class Menu:
options = []
label = 'empty'
def __init__(self, label, options):
self.label = label
self.options = options
def __repr__(self):
return '%s \n=====================\n\n%s' % (self.label, self.options[0])
我在这里要做的是格式化repr函数,以便打印所有选项。现在它将正确打印
Label
\==============
Option 1
但是我可以在return语句中抛出for循环,还是有正确的方法来修复它?
答案 0 :(得分:2)
您可以使用str.join
函数加入列表中的所有值,然后将其返回
return "{}\n=======\n\nOptions :[{}]".format(self.label, ", ".join(self.options))
注意:强>
如果您要在options
中创建一个名为__init__
的属性,当您使用options
访问它时,它会影响类级属性self
。< / p>
self.options = options
不会创建新列表。这将使self.options
和options
引用传递的相同列表对象。因此,如果您更改self.options
,它也会反映在options
中。如果您想制作副本,可以像self.options = options[:]