gpt4 book ai didi

python - 在类级别属性中存储(自身的)实例列表?

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:11 25 4
gpt4 key购买 nike

我有一个类,我想在其中存储同一类对象的静态引用列表。例如:

class Apple:

NICE_APPLES = [Apple('Elstar', 'Green'), Apple('Braeburn', 'Red'),
Apple('Pink Lady', 'Pink')]

def __init__(self, name, colour):
self.name = name
self.colour = colour

这会导致 NameError: name 'Apple' is not defined 错误。为什么这行不通?

我已将代码更改为以下内容,它似乎可以在控制台上运行:

class Apple:

NICE_APPLES = []

def __init__(self, name, colour):
self.name = name
self.colour = colour

Apple.NICE_APPLES = [Apple('Elstar', 'Green'), Apple('Braeburn', 'Red'),
Apple('Pink Lady', 'Pink')]

有更好的方法吗?这会在模块内部和外部工作吗,这取决于我导入模块的方式吗?

最佳答案

使用类方法将苹果添加到您的类列表中。

class Apple:

NICE_APPLES = []

def __init__(self, name, colour):
self.name = name
self.colour = colour

@classmethod
def add_nice_apple(cls, name, colour):
cls.NICE_APPLES.append(cls(name, colour))


Apple.add_nice_apple('Elstar','Green')
Apple.add_nice_apple('Braeburn','Red')

关于python - 在类级别属性中存储(自身的)实例列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44358879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com