
正文
Pthon魔术方法(Magic Methods)-可调用对象
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Pthon魔术方法(Magic Methods)-可调用对象
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.可调用对象方法
__call__:
类中定义一个该方法,实例就可以像函数一样调用。
二.案例展示
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie class Point:
def __init__(self,x,y):
self.x = x
self.y = y def __call__(self, *args, **kwargs):
return "<Point {}:{}>".format(self.x,self.y) p = Point(10,20)
print(p)
print(p()) #函数即对象,对象p加上(),就是调用次函数对象的__call__()方法,因此我们可以说p()等价于p.__call__()
print(p.__call__()) #累加
class Adder:
def __call__(self, *args, **kwargs):
self.result = sum(args)
return self.result adder = Adder()
print(adder(*range(1,10)))
print(adder.result) #以上代码执行结果如下:
<__main__.Point object at 0x000001EAC0805588>
<Point 10:20>
<Point 10:20>
45
45





