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 相关文章推荐
zbar解码二维码和条形码示例
Feb 07 Python
Python函数式编程指南(二):从函数开始
Jun 24 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
Nov 23 Python
Python数据分析库pandas基本操作方法
Apr 08 Python
python人民币小写转大写辅助工具
Jun 20 Python
详解Python 正则表达式模块
Nov 05 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
Python自动巡检H3C交换机实现过程解析
Aug 14 Python
python实现人性化显示金额数字实例详解
Sep 25 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 验证码制作(网树注释思想)
2009/07/20 PHP
php中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
vue实现图片上传功能
2020/05/28 Javascript
python使用marshal模块序列化实例
2014/09/25 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
浅谈python为什么不需要三目运算符和switch
2016/06/17 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
python 实现dict转json并保存文件
2019/12/05 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
ORACLE十问
2015/04/20 面试题
面料业务员岗位职责
2013/12/26 职场文书
初中化学教学反思
2014/01/23 职场文书
师德建设实施方案
2014/03/21 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书