gpt4 book ai didi

python - 在 python 类中定义常量,真的需要 self 吗?

转载 作者:IT老高 更新时间:2023-10-28 22:20:47 26 4
gpt4 key购买 nike

我想在一个类中定义一组常量,例如:

class Foo(object):
(NONEXISTING,VAGUE,CONFIRMED) = (0,1,2)
def __init__(self):
self.status = VAGUE

但是,我明白了

NameError: global name 'VAGUE' is not defined

有没有一种方法可以将这些常量定义为在类中可见,而无需使用 globalself.NONEXISTING = 0 等?

最佳答案

当您在类主体中分配名称时,您正在创建类的属性。如果不直接或间接地引用类,就不能引用它们。您可以像其他答案所说的那样使用 Foo.VAGUE,也可以使用 self.VAGUE。您不必为 self 的属性分配

通常,使用 self.VAGUE 是您想要的,因为它允许子类重新定义属性,而不必重新实现使用它们的所有方法——这似乎不是一件明智的事情在这个特定的例子中,但谁知道呢。

关于python - 在 python 类中定义常量,真的需要 self 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3995546/

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