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中的startswith和endswith函数使用实例
Aug 25 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
Dec 14 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
使用python对excle和json互相转换的示例
Oct 23 Python
python实现自动获取IP并发送到邮箱
Dec 26 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
python 多个参数不为空校验方法
Feb 14 Python
python将数组n等分的实例
Dec 02 Python
Keras—embedding嵌入层的用法详解
Jun 10 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
使用python加密自己的密码
2015/08/04 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python根据成绩分析系统浅析
2019/02/11 Python
wxPython实现绘图小例子
2019/11/19 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
小学生民族团结演讲稿
2014/08/27 职场文书
捐资助学感谢信
2015/01/21 职场文书
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python
Python超详细分步解析随机漫步
2022/03/17 Python
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android