在python中引用自己的类的默认变量
作者:互联网
我正在尝试写一些类似的东西:
class MyClass(object):
@staticmethod
def test(x, y, z=None):
if not z:
z = external_function(MyClass)
是否可以在python中将其重写为:
class MyClass(object):
@staticmethod
def test(x, y, z=external_function(MyClass)):
pass
(第二个代码不起作用,因为它引用了此时未定义的MyClass)
解决方法:
不可能以这种方式重写代码.你能做的最接近的是:
class MyClass:
pass
def test(x, y, z=external_function(MyClass):
pass
MyClass.test = staticmethod(test)
del test
请注意,这假设Python 3;在Python 2中,您可能需要摆弄新模块.但尽管这是可能的,但代码的意图非常明显.如果z为None,或者重构代码不需要它,最好坚持使用.
标签:python,default-value 来源: https://codeday.me/bug/20190827/1735430.html