我试图在这样的代码中理解一些程序:
class foo(object):
def __init__(self):
# some initializations
pass
def __call__(self, a, b):
return a+b
x = foo()
x(2, 3)
__call__
内的回复是错误吗?它不会引发任何错误,但我们如何才能在__call__
中访问返回值?
答案 0 :(得分:3)
是的,您绝对可以从__call__
返回一个值,该值将用作调用本身的返回值。
使用您的示例:
class foo(object):
def __init__(self):
# some initializations
pass
def __call__(self, a, b):
return a+b
obj = foo()
print obj(1, 2) # Prints `3`