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 09 Python
Python验证企业工商注册码
Oct 25 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
Python tkinter label 更新方法
Oct 11 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
python scatter函数用法实例详解
Feb 11 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
python datetime时间格式的相互转换问题
Jun 11 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生成自己的LOG文件
2006/10/09 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
vuex的module模块用法示例
2018/11/12 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
Django发送邮件功能实例详解
2019/09/02 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
eBay奥地利站:eBay.at
2019/07/24 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
火车来了教学反思
2014/02/11 职场文书
我的梦想演讲稿
2014/04/30 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
婚庆公司开业主持词
2015/06/30 职场文书