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 相关文章推荐
pycharm 使用心得(七)一些实用功能介绍
Jun 06 Python
Python中使用Flask、MongoDB搭建简易图片服务器
Feb 04 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
Jun 01 Python
python 中random模块的常用方法总结
Jul 08 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
Python 基础教程之闭包的使用方法
Sep 29 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
Python实现中一次读取多个值的方法
Apr 22 Python
python、Matlab求定积分的实现
Nov 20 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 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
Yii全局函数用法示例
2017/01/22 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
php unlink()函数使用教程
2018/07/12 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
JS Array对象入门分析
2008/10/30 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
Node登录权限验证token验证实现的方法示例
2020/05/25 Javascript
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
python Flask实现restful api service
2017/12/04 Python
python代码过长的换行方法
2018/07/19 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
Python3实现二叉树的最大深度
2019/09/30 Python
8种常用的Python工具
2020/08/05 Python
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
仓库主管岗位职责
2014/03/02 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
2015年教师节主持词
2015/07/03 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
公历12个月名称的由来
2022/04/12 杂记
Elasticsearch 数据类型及管理
2022/04/19 Python
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL