这应该很简单,但我没有谷歌它:如何(如果有的话)我可以重载Python中的parantheses运算符?这样代码就有意义了:
my_new_object = my_new_class()
x = my_new_object(5)
答案 0 :(得分:12)
您需要在班级上定义__call__
。
例如
>>> class Multiplier(object):
... def __init__(self, num):
... self.num = num
... def __call__(self, other):
... return self.num*other
...
>>> mul5 = Multiplier(5)
>>> mul5(6)
30
答案 1 :(得分:8)
在班级上定义__call__()
:
class MyNewClass(object):
def __call__(self, x):
return x
答案 2 :(得分:5)
您应该查看this document的“可调用类型”部分。特别是,您的班级可以实施__call__
。