如何使用 class 变量作为 Python 中的默认参数值
How to use a class variable as a default argument value in Python
我想使用 class 变量作为静态方法中的默认参数值。
但是当我引用 class 时,出现错误 NameError: name 'MyClass' is not defined
class MyClass:
x = 100
y = 200
@staticmethod
def foo(x = MyClass.x, y = MyClass.y):
return x*y
MyClass
在Python想要绑定默认参数时还没有定义,但是x
和y
已经在类中定义了'范围。
换句话说,你可以这样写:
class MyClass:
x = 100
y = 200
@staticmethod
def foo(x=x, y=y):
return x*y
请注意,foo
将 不会 识别对 MyCLass.x
和 MyClass.y
的重新分配,因为默认参数绑定一次,当函数是已创建。
>>> MyClass.foo()
20000
>>> MyClass.x = 0
>>> MyClass.foo()
20000
我想使用 class 变量作为静态方法中的默认参数值。
但是当我引用 class 时,出现错误 NameError: name 'MyClass' is not defined
class MyClass:
x = 100
y = 200
@staticmethod
def foo(x = MyClass.x, y = MyClass.y):
return x*y
MyClass
在Python想要绑定默认参数时还没有定义,但是x
和y
已经在类中定义了'范围。
换句话说,你可以这样写:
class MyClass:
x = 100
y = 200
@staticmethod
def foo(x=x, y=y):
return x*y
请注意,foo
将 不会 识别对 MyCLass.x
和 MyClass.y
的重新分配,因为默认参数绑定一次,当函数是已创建。
>>> MyClass.foo()
20000
>>> MyClass.x = 0
>>> MyClass.foo()
20000