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标准库内置函数complex介绍
Nov 25 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
利用python将图片转换成excel文档格式
Dec 30 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
Python中字符串List按照长度排序
Jul 01 Python
Python文件操作方法详解
Feb 09 Python
python实现连连看游戏
Feb 14 Python
MATLAB数学建模之画图汇总
Jul 16 Python
Python模块zipfile原理及使用方法详解
Aug 04 Python
python 利用panda 实现列联表(交叉表)
Feb 06 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中simplexml_load_string函数使用说明
2011/01/01 PHP
php四种基础算法代码实例
2013/10/29 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
Angular工具方法学习
2016/12/26 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
python3图片转换二进制存入mysql
2013/12/06 Python
Python的randrange()方法使用教程
2015/05/15 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
python3+PyQt5实现柱状图
2018/04/24 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
养殖人员的创业计划书范文
2013/12/26 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
师德标兵事迹材料
2014/12/19 职场文书
公司人事任命通知
2015/04/20 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书