Pthon魔术方法(Magic Methods)-可调用对象

              Pthon魔术方法(Magic Methods)-可调用对象

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.可调用对象方法

  __call__:
    类中定义一个该方法,实例就可以像函数一样调用。

 

二.案例展示

 1 #!/usr/bin/env python
 2 #_*_conding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 
 6 class Point:
 7     def __init__(self,x,y):
 8         self.x = x
 9         self.y = y
10 
11     def __call__(self, *args, **kwargs):
12         return "<Point {}:{}>".format(self.x,self.y)
13 
14 
15 p = Point(10,20)
16 print(p)
17 print(p())              #函数即对象,对象p加上(),就是调用次函数对象的__call__()方法,因此我们可以说p()等价于p.__call__()
18 print(p.__call__())
19 
20 
21 #累加
22 class Adder:
23     def __call__(self, *args, **kwargs):
24         self.result = sum(args)
25         return self.result
26 
27 adder = Adder()
28 print(adder(*range(1,10)))
29 print(adder.result)
30 
31 
32 #以上代码执行结果如下:
33 <__main__.Point object at 0x000001EAC0805588>
34 <Point 10:20>
35 <Point 10:20>
36 45
37 45

 

posted @ 2019-07-26 05:21  尹正杰  阅读(251)  评论(0编辑  收藏  举报