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实现过滤单个Android程序日志脚本分享
Jan 16 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
Apr 27 Python
Python获取指定字符前面的所有字符方法
May 02 Python
python实现内存监控系统
Mar 07 Python
python:按行读入,排序然后输出的方法
Jul 20 Python
python中的列表与元组的使用
Aug 08 Python
PyInstaller的安装和使用的详细步骤
Jun 02 Python
浅谈keras 的抽象后端(from keras import backend as K)
Jun 16 Python
Django缓存Cache使用详解
Nov 30 Python
Matlab如何实现矩阵复制扩充
Jun 02 Python
Pytorch可视化的几种实现方法
Jun 10 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
桌面中心(三)修改数据库
2006/10/09 PHP
php字符串操作常见问题小结
2016/10/11 PHP
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
2015/06/14 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
后勤主管岗位职责
2014/03/01 职场文书
法制宣传实施方案
2014/03/13 职场文书
团日活动总结范文
2014/04/25 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
大学生入党自荐书
2015/03/05 职场文书
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android