Python3中__call__方法介绍

2023-11-19

      如果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__ method
        def __call__(self):
            print("Instance is called via special method")

    e = Example() # Instance created # __init__ method will be called
    e() # Instance is called via special method # __call__ method will be called
elif var == 2:
    class Product:
        def __init__(self):
            print("Instance Created")

        # Defining __call__ method
        def __call__(self, a, b): # 可以定义任意参数
            print(a * b)

    ans = Product()  # Instance created # __init__ method will be called
    ans(10, 20) # 200 # __call__ method will be called
    ans.__call__(10, 20) # 等价于ans(10, 20)

print("test finish")

      GitHubhttps://github.com/fengbingchun/Python_Test

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3中__call__方法介绍 的相关文章

随机推荐

  • xilinx xdma PCIe中断bug

    xilinx xdma PCIe中断存在bug bug1 此中断虽然是msi或者msx中断 但是不中断cpu bug2 此中断不是边沿中断 而是电平中断 在驱动层需要不断地轮训查询中断事件 bug3 此中断持续时间必须长 而且在收到中断应答
  • 关于the selection cannot be run on any server错误的问题,如何快速的解决。

    最近在导入外来项目时 遇到了一个难题 就是出现了图中的错误 the selection cannot be run on any server 无法在任何服务器上运行所选内容 这个错误的原因在于Dynamic Web Module 的版本与
  • 基于CNN-GRU的多维数据预测算法——附带Matlab代码

    基于CNN GRU的多维数据预测算法 附带Matlab代码 近年来 卷积神经网络 CNN 和门控循环单元 GRU 在时序数据处理中的应用十分广泛 本文提出了一种基于CNN GRU结构的多维数据预测算法 并提供了相应的Matlab代码 首先
  • FPGA Xilinx 7系列高速收发器GTX通信

    Xilinx 7系列高速收发器GTX 说明 FPGA TX端 zynq 7z035 RX端 zynq 7z100 两个FPGA通过SFP 光纤 接口相连进行GTX的通信 环境 Vivado2018 2 IP核 7 Series FPGAs
  • radius认证服务器无响应,squid radius认证“RADIUS服务器没有响应”

    我已经用mysql成功配置freeradius 我可以radtest使用命令 squid radius认证 RADIUS服务器没有响应 sudo radtest alice password 192 168 2 3 1812 testing
  • java面向对象 final && static 关键字

    目录 关键字 static 类属性 类方法的设计思想 类变量 class Variable 静态变量的内存解析 类方法 class method 单例 Singleton 设计模式 理解main方法的语法 代码块 关键字 final 总结
  • LTE MIB&SIB1

    LTE MIB SIB1 LTE MIB SIB 消息可以参考 http blog csdn net wowricky article details 51348613 UE 接受完MIB SIB1后就可以判断这个CELL是否可以驻留 这里
  • Unix and perl primer for Biologists - Part2 :Advanced Unix- Reading Notes(U37-U45)

    U37 Counting with grep Running grep c simply counts how many lines match the specified pattern root kali Downloads Unix
  • Linux内核调度算法 -- CPU时间片如何分配

    内核在微观上 把CPU的运行时间分成许多分 然后安排给各个进程轮流运行 造成宏观上所有的进程仿佛同时在执行 双核CPU 实际上最多只能有两个进程在同时运行 大家在top vmstat命令里看到的正在运行的进程 并不是真的在占有着CPU哈 所
  • FPGA_时钟显示(时钟可调)

    1 实验说明 在数码管显示数据的基础上 让六位数码管显示数字时钟 并且通过按键可以对时间进行修改 实验目标 六位数码管分别显示时间的时分秒 且通过按键可实现加减调整时间及清零功能 key1 切换键 选择待调整的时间单位 时 分 秒 key2
  • 2021-09-18

    Idea控制台中文乱码解决 Dfile encoding gb2312
  • HBase跨版本数据迁移总结

    本文首发腾云阁 HBase跨版本数据迁移总结 某客户大数据测试场景为 Solr类似画像的数据查出用户标签 通过这些标签在HBase查询详细信息 以上测试功能以及性能 其中HBase的数据量为500G Solr约5T 数据均需要从对方的集群人
  • 剑指 Offer 56 - II. 数组中数字出现的次数 II(java+python)

    在一个数组 nums 中除一个数字只出现一次之外 其他数字都出现了三次 请找出那个只出现一次的数字 示例 1 输入 nums 3 4 3 3 输出 4 示例 2 输入 nums 9 1 7 9 7 9 7 输出 1 限制 1 lt nums
  • 宝塔面板 创建 二级域名 Unable to round-trip http request to upstream

    1 我的服务器是阿里云 安装了宝塔面板 直接使用宝塔面板创建二级域名bike caowei wang 2 然后就想访问了 对不起 直接给你报错Unable to round trip http request to upstream dia
  • 第二届网刃杯--部分Re

    1 freestyle ida中分析有个两个fun atoi 将字符转换为整数 得到答案为3327105 MD5加密提交 2 Re function 没有提供密码 但是在右边看到熟悉的89 50 利用winhex保存出来 得到解压密码 解压
  • 宝塔登录面板

    请使用正确的入口登录面板 错误原因 当前新安装的已经开启了安全入口登录 新装机器都会随机一个8位字符的安全入口名称 亦可以在面板设置处修改 如您没记录或不记得了 可以使用以下方式解决 解决方法 在SSH终端输入以下一种命令来解决 1 查看面
  • flutter 秒转时分秒

    参考 倒计时工具 class CountdownUtils 补零 static String zeroFill int i return i gt 10 i 0 i 秒转时分秒 static String second2HMS int se
  • 关系数据关联性分析实验

    1 散点图 基于ggplot内置数据mtcars 以mpg列为横坐标 以wt列为纵坐标 以cyl列分组控制颜色 绘制散点图 点的形状为三角形 大小为150 图的标题为 MPG VS WT from ggplot import data gg
  • 【RPA机器人】PDF批量转换成图片机器人

    运行前须知 1 仅支持win10系统 2 请确保安装金山PDF独立版 3 请把屏幕分辨率设置为1920x1080 缩放布局100 4 生成的图片将保存在所选文件夹目录下 运行流程 1 获取需批量转换PDF的文件夹 2 等待文件自动转换 运用
  • Python3中__call__方法介绍

    如果Python3类中有 call 方法 那么此类实例的行为类似于函数并且可以像函数一样被调用 当实例作为函数被调用时 如果定义了此方法 则x arg1 arg2 是x call arg1 arg2 的简写 为了将一个类实例当作函数调用 我