如何打印出食物清单?

问题描述 投票:0回答:1

如何打印出“食物”清单?我所能打印的就像内存位置一样。

class Fridge:
    isOpened = False
    foods = []

    def open(self):
        self.isOpened = True
        print "Fridge open"

    def put(self, thing):
        if self.isOpened:
            self.foods.append(thing)
            print 'Food in'
        else:
            print 'Cannot do that'

    def close(self):
        self.isOpened = False
        print 'Fridge closed.'

    def __repr__(self):
        return "%s" % (self.foods[0])

class Food:
    pass
python-2.7 class
1个回答
0
投票

你定义repr()的方式,它只会产生列表foods中的第一个项目(如foods[0]所示)。此外,如果列表foods为空,则调用repr()将导致IndexError

打印列表的一种方法是:

def __repr__(self):
    return str([food for food in self.foods])

如果您不熟悉语法,请查看List Comprehensions

这是您的类的示例用例:

>>> f = Fridge()
>>> f.open()
Fridge open
>>> f.put("Fruit")
Food in
>>> f.put("Vegetables")
Food in
>>> f.put("Beer")
Food in
>>> print f
['Fruit', 'Vegetables', 'Beer']
© www.soinside.com 2019 - 2024. All rights reserved.