python - 如何在使用静态类变量的类的 __init__ 中定义默认参数?

标签 python python-3.x initialization static-variables

我有一个问题,我试图在类的初始化中使用静态变量作为必需的命名默认参数:

class Foo:
    bar = 1
    rab = 2
    
    def __init__(self, /, def_arg=Foo.bar):
        if def_arg == self.bar:
            pass
        elif def_arg == self.rab:
            pass

Foo()
Foo(Foo.rab)

4: NameError: name 'Foo' is not defined

我也尝试过不使用 Foo.self. 但它不起作用。它必须是特别静态的,所以我不想使用 self.bar。这有可能吗?

最佳答案

如果你只使用 bar 就可以了。

def __init__(self, def_arg=bar):
    print(def_arg)

关于python - 如何在使用静态类变量的类的 __init__ 中定义默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64949152/

相关文章:

python - 多彩输入Python

oop - F# 对象构造函数

c++ - 为什么 C++ 类需要在类范围之外定义静态字段(数据成员)?

regex - 从初始值设定项返回而不初始化正则表达式类中的所有存储属性错误

python - 为什么在 '-' 中的 'I-' 之后有一个额外的空间?

python - 在 Python 中返回累​​加器的函数

Python 根据句子列表中的特定条件剥离单词

python - 如何从 Python 中的 csv 文件创建 SQL 数据库

python Selenium 权限错误 : [WinError 5] Access is denied

Python 魔法元类创建