答案真的取决于你的其他意图
X.default_func
十、 默认函数
# in other code...
some_object = "Bring out your dead"
X.default_func(some_object)
另一方面,如果您不希望调用default_func,除非是在X的一个实例中(当然也用作
test
self
).
class X:
def default_func(self):
return True
def test(self, func = default_func):
return func(self)
作为补充说明,我想指出的是,您可以用不同的方式来编写答案2,以避免使用非静态方法:
class X:
def default_func(x):
return True
def test(self, func = default_func):
return func(self)
default_func = staticmethod(default_func)
有效的原因是直到下面的整个块之后才创建类X(并且默认的函数不会成为X的方法)
class X:
test(func)
).