【问题标题】:How to store class attribute information in a list when creating an object? [closed]创建对象时如何将类属性信息存储在列表中? [关闭]
【发布时间】:2021-08-17 04:37:01
【问题描述】:

我正在尝试找到一种在创建对象时将类属性信息存储在列表中的方法。我只是在学习 python 类,在弄清楚如何正确实现 str 方法时遇到了一些困难。

    muffins = []
    
    class Muffin:
        def __init__(self,name,calories):
            self.name = name
            self.calories = calories
            muffins.append(Muffin)

        def __str__(self):
            return self.name
    
    
    banana_chocolate_chip = Muffin('banana_chocolate_chip', 250)
    
    blueberry = Muffin('blueberry', 200)
    
    pumpkin_pecan = Muffin('pumpkin_pecan', 225)
    
    
    for muffin in muffins:
        print(muffin)

当我运行这段代码时,我得到:


    <class '__main__.Muffin'>
    <class '__main__.Muffin'>
    <class '__main__.Muffin'>

我想要的输出是:

    banana_chocolate_chip
    blueberry
    pumpkin_pecan

提前致谢! :)

【问题讨论】:

    标签: python list class


    【解决方案1】:

    使用 muffins.append(self) 而不是 muffins.append(Muffin) 来获得所需的输出。 muffins.append(Muffin) 不会附加松饼类的实际实例,传递 self 将引用刚刚创建的实例。

    【讨论】:

    • 啊,是的,这很有道理!谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2021-03-11
    • 2016-11-27
    相关资源
    最近更新 更多