Python中__call__用法实例


Posted in Python onAugust 29, 2014

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
Python画图学习入门教程
Jul 01 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
Linux下python3.6.1环境配置教程
Sep 26 Python
django使用LDAP验证的方法示例
Dec 10 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
Python while循环使用else语句代码实例
Feb 07 Python
Python装饰器的应用场景代码总结
Apr 10 Python
python中使用input()函数获取用户输入值方式
May 03 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
Python中bisect的用法及示例详解
Jul 20 Python
python进阶教程之词典、字典、dict
Aug 29 #Python
python字符串排序方法
Aug 29 #Python
python基础教程之对象和类的实际运用
Aug 29 #Python
python基础教程之面向对象的一些概念
Aug 29 #Python
初学Python实用技巧两则
Aug 29 #Python
python基础教程之自定义函数介绍
Aug 29 #Python
python爬虫常用的模块分析
Aug 29 #Python
You might like
基于mysql的论坛(4)
2006/10/09 PHP
php 设计模式之 工厂模式
2008/12/19 PHP
php学习之变量的使用
2011/05/29 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
javascript 避免闭包引发的问题
2009/03/17 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
js实现分割上传大文件
2016/03/09 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
iView框架问题整理小结
2018/10/16 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
python搜索指定目录的方法
2015/04/29 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
采购部部长岗位职责
2014/02/06 职场文书
优秀电子工程系毕业生求职信
2014/05/24 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
市场部岗位职责
2015/02/12 职场文书
工程项目合作意向书
2015/05/08 职场文书
名人传读书笔记
2015/06/26 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
微信小程序实现聊天室功能
2021/06/14 Javascript
mysql 获取时间方式
2022/03/20 MySQL
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis