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程序设计有所帮助。
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语