为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

茅侃侃 2022-01-05 20:06:26
我想简单地列出各种咖啡,但收到一个错误,指出该列表未定义。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)
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

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


查看完整回答
反对 回复 2022-01-05
?
呼如林

TA贡献1798条经验 获得超3个赞

我认为这显示了如何做你想做的事。我还修改了您的代码以遵循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']


查看完整回答
反对 回复 2022-01-05
?
慕斯709654

TA贡献1840条经验 获得超5个赞

是的,谢谢,这正是我想要的!我不确定.. 我以为你可以在 return 语句中同时做两件事,都返回追加。我想很多时候python非常灵活,有时则不然。谢谢


查看完整回答
反对 回复 2022-01-05
  • 3 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信