编程语言
首页 > 编程语言> > 在python中引用自己的类的默认变量

在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