如何在Python的同一个类中将实例变量指定为关键字参数的默认值

Shu*_*ule 2 python instance-variables self keyword-argument python-3.x

在Python 3.3+中,给定一个带有方法的类,该类有一个实例变量,它是一个简单的object()对象(我们称之为self.FALSE).如何将该实例变量用作关键字参数的默认值?

class Test:
    def __init__(self):
        self.FALSE=object();
    def Tester(self, key=self.FALSE):
        pass;
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用,因为关键字参数默认值的范围不包括self(通常也不包括Test类).但它确实包括全局变量和至少一些对象.

有没有办法做到这一点?我现在没有迫切的需要,但如果我能以某种方式做到这一点,那将是非常好的.我认为你可以作为关键字参数默认值传递任何内容.当然必须有办法.

the*_*eye 5

最初具有的价值默认keyNone,并在功能,如果keyNone,那么你可以设置默认值,无论你是喜欢.

def Tester(self, key=None):
    if key is None:
        key = self.FALSE
Run Code Online (Sandbox Code Playgroud)

此外,您不需要Python中的分号,就像我们在C/C++/JAVA中所需要的那样.