如何将列表用作类变量,以便将实例对象(参数)附加到列表中?

我想简单地列出各种咖啡,但收到一个错误,指出该列表未定义。self引用类变量时是否必须在构造函数中使用?


我曾尝试将return语句更改为 return self.coffelist.append(name),但随后出现另一个错误:'Function' object has no attribute 'append'.


class coffe:


    coffelist = []


    def __init__(self,name,origin,price):

        self.name = name

        self.origin = origin

        self.price = price

        return (self.coffelist.append(self.name))


    def coffelist(self):

        print(coffelist)



c1=coffe("blackcoffe","tanz",55)

c2=coffe("fineroasted","ken",60)


茅侃侃
浏览 169回答 3
3回答

烙印99

这是因为您将其中一个方法命名为coffelist.

呼如林

我认为这显示了如何做你想做的事。我还修改了您的代码以遵循PEP 8 - Python 代码风格指南并更正了一些拼写错误的单词。class Coffee:  # Class names should Capitalized.    coffeelist = []  # Class attribute to track instance names.    def __init__(self,name,origin,price):        self.name = name        self.origin = origin        self.price = price        self.coffeelist.append(self.name)    def print_coffeelist(self):        print(self.coffeelist)c1 = Coffee("blackcoffee", "tanz", 55)c1.print_coffeelist()  # -> ['blackcoffee']c2 = Coffee("fineroasted", "ken", 60)c1.print_coffeelist()  # -> ['blackcoffee', 'fineroasted']# Can also access attribute directly through the class:print(Coffee.coffeelist)  # -> ['blackcoffee', 'fineroasted']

慕斯709654

是的,谢谢,这正是我想要的!我不确定.. 我以为你可以在 return 语句中同时做两件事,都返回追加。我想很多时候python非常灵活,有时则不然。谢谢
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python