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中的pygal安装和绘制直方图代码分享
Dec 08 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
Sep 25 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
python反编译学习之字节码详解
May 19 Python
python 字典操作提取key,value的方法
Jun 26 Python
Python 词典(Dict) 加载与保存示例
Dec 06 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
python之随机数函数的实现示例
Dec 30 Python
Python实现微信表情包炸群功能
Jan 28 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
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
基于node.js实现爬虫的讲解
2019/02/18 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
对于Python的Django框架部署的一些建议
2015/04/09 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
软件工程师岗位职责
2013/11/16 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
2014年社区植树节活动方案
2014/02/28 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
2015年采购工作总结
2015/04/10 职场文书
退税申请报告怎么写
2015/05/18 职场文书
小学体育教学随笔
2015/08/14 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers