如果Python3类中有__call__方法,那么此类实例的行为类似于函数并且可以像函数一样被调用。当实例作为函数被调用时,如果定义了此方法,则x(arg1, arg2, …)是x.__call__(arg1, arg2, …)的简写。

      为了将一个类实例当作函数调用,我们需要在类中实现__call__()方法。该方法的功能类似于在类中重载()运算符,使得类实例对象可以像调用普通函数那样,以”对象名()”的形式使用。

以下为测试代码:

var = 2
if var == 1:# https://www.geeksforgeeks.org/__call__-in-python/class Example:def __init__(self):print("Instance Created")# Defining __call__ methoddef __call__(self):print("Instance is called via special method")e = Example() # Instance created # __init__ method will be callede() # Instance is called via special method # __call__ method will be called
elif var == 2:class Product:def __init__(self):print("Instance Created")# Defining __call__ methoddef __call__(self, a, b): # 可以定义任意参数print(a * b)ans = Product()  # Instance created # __init__ method will be calledans(10, 20) # 200 # __call__ method will be calledans.__call__(10, 20) # 等价于ans(10, 20)print("test finish")

GitHub:https://github.com/fengbingchun/Python_Test

Python3中__call__方法介绍相关推荐

  1. PyTorch中nn.Module类中__call__方法介绍

    在PyTorch源码的torch/nn/modules/module.py文件中,有一条__call__语句和一条forward语句,如下: __call__ : Callable[-, Any] = ...

  2. python2与python3性能对比_对Python2与Python3中__bool__方法的差异详解

    对Python2与Python3中__bool__方法的差异详解 发布时间:2020-08-28 00:08:58 来源:脚本之家 阅读:74 作者:grey_csdn 学习Python面向对象编程的 ...

  3. python里的join方法_python中join()方法介绍

    描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法: str . join ( sequence ) 参数 sequence -- ...

  4. ResultSetMetaData 中的方法介绍

    ResultSetMetaData 中的方法介绍 利用ResultSet的getMetaData的方法可以获得ResultSetMeta对象,而ResultSetMetaData存储了 ResultS ...

  5. python3中format方法_python3 自定制format格式化,很多很多的内置方法。。。。。。。。。。。...

    1.哈哈哈,说实话,前面的foamat格式化并不是很懂: 举例: 1 date_format={2 "y-m-d":"{0.year}年{0.month}月{0.day} ...

  6. Python3中typing模块介绍

    typing.py的源码在:https://github.com/python/cpython/blob/main/Lib/typing.py.此模块为类型提示(Type Hints)提供运行时支持( ...

  7. Python3中collections.OrderedDict介绍

    Python3中的collections模块实现了特定目标的容器,以提供Python标准内建容器dict.list.set和tuple的替代选择,包括namedtuple.deque.ChainMap ...

  8. Python3中装饰器介绍

          Python中的装饰器(decorator)是一个接受另一个函数作为参数的函数.装饰器通常会修改或增强它接受的函数并返回修改后的函数.这意味着当你调用一个装饰函数时,你会得到一个与基本定义 ...

  9. ResultSetMetaData 、DatabaseMetaData中的方法介绍

    利用ResultSet的getMetaData的方法可以获得ResultSetMeta对象,而ResultSetMetaData存储了 ResultSet的MetaData.所谓的MetaData在英 ...

最新文章

  1. Nature:肠道菌如何影响大脑,帮助消除恐惧相关的行为
  2. 图像理解--Detecting and Recognizing Human-Object Interactions
  3. python3 如何给装饰器传递参数
  4. 韩信点兵python源代码_少儿编程|Python小课堂 – 韩信点兵
  5. 深入delphi编程(转)
  6. crt中 新建的连接存储在哪_LCD发展至今仍然没有完胜CRT显示器,“老玩家”为你现身说法...
  7. Linux IO模式和select,poll,epoll解释
  8. python 线程 的类库_python类库32[多线程同步Lock+RLock+Semaphore+Event]
  9. 人工智能 深度学习(Deep learning)开源框架
  10. 时间与时间戳的小问题
  11. JS实现复制内容到剪切板,兼容PC和手机端,支持SAFARI浏览器
  12. Android使用有道翻译API实现在线翻译功能
  13. enumerate和iter的使用
  14. Maven读书笔记之六(仓库)
  15. duilib制作窗体动画效果
  16. 欧姆龙CP/CJ系列PLC以太网通讯方案
  17. android录音声波动画,Android开发:仿微信 录音声波
  18. 拓嘉辰丰电商:如何投诉拼多多商家一直不发货
  19. 【AI实战】深度学习基础环境搭建(Ubuntu + anaconda + tensorflow + GPU + PyCharm)
  20. 易源数据_易源数据-彩票开奖查询【最新版】_数据应用_API_金融-云市场-阿里云...

热门文章

  1. C++中的.hpp理解
  2. Spring Boot+Maven实现车牌训练、识别系统
  3. 力扣(LeetCode)刷题,简单题+中等题(第20期)
  4. 一、常见损失函数的用法
  5. 【OpenCV】将单通道的Mat对象转换为三通道的Mat
  6. python安装依赖失败_python - pip安装jq依赖关系失败 - SO中文参考 - www.soinside.com
  7. 在Ubuntu 14.04 64bit中永久添加DNS的方法
  8. malloc(0)-malloc 0 字节
  9. LTE SIB1时频资源
  10. ceph bluestore 源码分析:ceph-osd内存查看方式及控制源码分析