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 相关文章推荐
Python时区设置方法与pytz查询时区教程
Nov 27 Python
python并发编程之线程实例解析
Dec 27 Python
tensorflow入门之训练简单的神经网络方法
Feb 26 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
python变量命名的7条建议
Jul 04 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
Django REST Swagger实现指定api参数
Jul 07 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 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
php a simple smtp class
2007/11/26 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
新手入门常用代码集锦
2007/01/11 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
javascript如何写热点图
2015/12/08 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
Python如何将模块打包并发布
2020/08/30 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
机械工程师的岗位职责
2013/11/17 职场文书
会计系毕业生求职信
2014/05/28 职场文书
公司股东出资证明书
2014/11/01 职场文书
运动会跳远广播稿
2015/08/19 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python
vue里使用create, mounted调用方法
2022/04/26 Vue.js
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL