如何在__repr__函数中返回一个列表?

时间:2015-03-20 11:08:41

标签: python python-3.x

我有一个课程菜单

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循环,还是有正确的方法来修复它?

1 个答案:

答案 0 :(得分:2)

您可以使用str.join函数加入列表中的所有值,然后将其返回

return "{}\n=======\n\nOptions :[{}]".format(self.label, ", ".join(self.options))

注意:

  1. 如果您要在options中创建一个名为__init__的属性,当您使用options访问它时,它会影响类级属性self。< / p>

  2. 分配时,
  3. self.options = options不会创建新列表。这将使self.optionsoptions引用传递的相同列表对象。因此,如果您更改self.options,它也会反映在options中。如果您想制作副本,可以像self.options = options[:]

  4. 一样使用切片