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实现排序算法
Feb 14 Python
跟老齐学Python之不要红头文件(2)
Sep 28 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
对Pycharm创建py文件时自定义头部模板的方法详解
Feb 12 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
python实现最速下降法
Mar 24 Python
基于selenium及python实现下拉选项定位select
Jul 22 Python
快速解释如何使用pandas的inplace参数的使用
Jul 23 Python
基于python制作简易版学生信息管理系统
Apr 20 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过滤表单提交的html等危险代码
2014/11/03 PHP
php内嵌函数用法实例
2015/03/20 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
Python中的两个内置模块介绍
2015/04/05 Python
Python 性能优化技巧总结
2016/11/01 Python
python制作小说爬虫实录
2017/08/14 Python
Python实现的质因式分解算法示例
2018/05/03 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
基于Python测试程序是否有错误
2020/05/16 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
省级四好少年事迹材料
2014/01/25 职场文书
捐资助学倡议书
2014/04/15 职场文书
第二课堂活动总结
2014/05/07 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
项目负责人岗位职责
2015/02/15 职场文书
总经理检讨书范文
2015/02/16 职场文书
雷锋的观后感
2015/06/10 职场文书