我正在一个模块上工作,我希望用户能够同时使用a(x)(函数"a")和a.b(x)(类"a"with function "b"),但Python似乎不允许我这样做。还有别的办法吗?
你可以这样做:
class Func:
def __call__(self, x):
return self.b(x)
def b(self, x):
return x ** 2
a = Func()
print(a(2))
print(a.b(2))
本质上,你重载调用操作符,使对象可调用,在这种情况下,你只是在对象内部调用所需的函数b
。
瞧,你已经实现了你想要的。