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 相关文章推荐
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
Python简单定义与使用字典dict的方法示例
Jul 25 Python
单链表反转python实现代码示例
Feb 08 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
Python关于excel和shp的使用在matplotlib
Jan 03 Python
python验证身份证信息实例代码
May 06 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
Python模块future用法原理详解
Jan 20 Python
用什么库写 Python 命令行程序(示例代码详解)
Feb 20 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
粗暴解决CUDA out of memory的问题
May 22 Python
Python tensorflow卷积神经Inception V3网络结构
May 06 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
PHP生成静态页面详解
2006/11/19 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
python操作MySQL数据库的方法分享
2012/05/29 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
详解django2中关于时间处理策略
2019/03/06 Python
我就是这样学习Python中的列表
2019/06/02 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
python实现移动木板小游戏
2020/10/09 Python
普通简短的个人自我评价
2014/02/15 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
主题班会演讲稿
2014/05/22 职场文书
质量月口号
2014/06/20 职场文书
简易离婚协议书范本
2014/10/24 职场文书