相思资源网 Design By www.200059.com
本文实例讲述了Python中__call__的用法,分享给大家供大家参考之用。具体方法如下:
先来看看如下示例代码:
#call.py 一个class被载入的情况下。 class Next: List = [] def __init__(self,low,high) : for Num in range(low,high) : self.List.append(Num ** 2) def __call__(self,Nu): return self.List[Nu]
如果 这样使用:
b = Next(1,7) print b.List print b(2)
那么回馈很正常:
[1, 4, 9, 16, 25, 36] 9
但如果这样使用:
b = Next b(1,7) print b.List print b(2) $python ./call.py [1, 4, 9, 16, 25, 36] Traceback (most recent call last): File "cal.py", line 17, in <module> print b(2) TypeError: __init__() takes exactly 3 arguments (2 given)
__init__是初始化函数,在生成类的实例时执行。
而__call__是模拟()的调用,需要在实例上应用,因此这个实例自然是已经执行过__init__了。
你所举的后面那个例子:
b = Next
这并不是创建实例,而是将class赋给一个变量。因此后面使用b进行的操作都是对Next类的操作,那么其实就是:
Next(1,7) print Next.List print Next(2)
希望本文所述对大家的Python程序设计有所帮助。
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无Python中__call__用法实例的评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。