python中__call__方法示例分析


Posted in Python onOctober 11, 2014

本文实例讲述了python中__call__方法的用法,分享给大家供大家参考。具体方法分析如下:

Python中的__call__允许程序员创建可调用的对象(实例),默认情况下, __call__()方法是没有实现的,这意味着大多数实例是不可调用的。然而,如果在类定义中覆盖了这个方法,那么这个类的实例就成为可调用的。

test.py文件如下:

#!/usr/bin/python
# Filename:test.py
 
class CallTest():
  def __init__(self):
    print 'init'
 
  def __call__(self):
    print 'call'
 
call_test = CallTest()

执行结果:
没有重写__call__:

>>> from test import CallTest
init
>>> t = CallTest()
init
>>> callable(t)
False
>>> t()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: CallTest instance has no __call__ method
>>>

重写__call__:

>>> from test import CallTest
init
>>> t = CallTest()
init
>>> callable(t)
True
>>> t()
call
>>>

希望本文所述对大家的Python程序设计有所帮助

Python 相关文章推荐
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
Python3生成手写体数字方法
Jan 30 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
Python实现的求解最大公约数算法示例
May 03 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
基于python实现监听Rabbitmq系统日志代码示例
Nov 28 Python
matplotlib自定义鼠标光标坐标格式的实现
Jan 08 Python
Pandas自定义选项option设置
Jul 25 Python
python多重继承实例
Oct 11 #Python
Python之PyUnit单元测试实例
Oct 11 #Python
采用Psyco实现python执行速度提高到与编译语言一样的水平
Oct 11 #Python
跟老齐学Python之编写类之四再论继承
Oct 11 #Python
Python使用MySQLdb for Python操作数据库教程
Oct 11 #Python
跟老齐学Python之编写类之三子类
Oct 11 #Python
跟老齐学Python之编写类之二方法
Oct 11 #Python
You might like
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
pyqt4教程之widget使用示例分享
2014/03/07 Python
python 爬取微信文章
2016/01/30 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
python基础 range的用法解析
2019/08/23 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
荷兰电脑专场:Paradigit
2018/05/05 全球购物
JDK安装目录下有哪些内容
2014/08/25 面试题
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
社区灵活就业证明
2014/11/03 职场文书
防溺水主题班会教案
2015/08/12 职场文书
导游词之南京中山陵
2019/11/27 职场文书
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python