我有一个接受函数的类成员:
class A:
def func(self, method):
...
我想设置一个默认方法,因为 99% 的时间都需要这种行为。 此默认行为是静态的,因为它不依赖于类的任何成员。但是,我希望这个默认方法是私有(private)的并且对用户不可见。有什么办法可以做到这一点?
这是我试过的:
-
class A: @staticmethod def __meth(x): pass def func(self, method = meth): pass错误:
'staticmethod' 对象不可调用 -
class A: @staticmethod def __meth(x): pass def func(self, method = A.__meth): pass错误:
NameError:名称“A”未定义 -
class A: @staticmethod def __meth(x): pass def func(self, method = self.__meth): pass错误:
NameError:未定义名称“self”
我正在使用 Python 3.5,不想依赖更新的功能。
请您参考如下方法:
使用 None 作为默认值并根据需要分配它是相当惯用的:
class A:
@staticmethod
def __meth(x):
print(x)
def func(self, method=None):
if method is None:
method = self.__meth
method("x")
