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自定义主从分布式架构实例分析
Sep 19 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
windows上安装Anaconda和python的教程详解
Mar 28 Python
python利用urllib和urllib2访问http的GET/POST详解
Sep 27 Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
python解压zip包中文乱码解决方法
Nov 27 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 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
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
es6数值的扩展方法
2019/03/11 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
python argparser的具体使用
2019/11/10 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
地球一小时宣传标语
2014/06/24 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
二婚主持词
2015/06/30 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android