Python中__call__用法实例
本文实例讲述了Python中__call__的用法,分享给大家供大家参考之用。具体方法如下:
先来看看如下示例代码:
#call.py一个class被载入的情况下。 classNext: List=[] def__init__(self,low,high): forNuminrange(low,high): self.List.append(Num**2) def__call__(self,Nu): returnself.List[Nu]
如果这样使用:
b=Next(1,7) printb.List printb(2)
那么回馈很正常:
[1,4,9,16,25,36] 9
但如果这样使用:
b=Next b(1,7) printb.List printb(2) $python./call.py [1,4,9,16,25,36] Traceback(mostrecentcalllast): File"cal.py",line17,in<module> printb(2) TypeError:__init__()takesexactly3arguments(2given)
__init__是初始化函数,在生成类的实例时执行。
而__call__是模拟()的调用,需要在实例上应用,因此这个实例自然是已经执行过__init__了。
你所举的后面那个例子:
b=Next
这并不是创建实例,而是将class赋给一个变量。因此后面使用b进行的操作都是对Next类的操作,那么其实就是:
Next(1,7) printNext.List printNext(2)
希望本文所述对大家的Python程序设计有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下