python 类中的__call__是什么?


python 类中的__call__是什么?

在类class__call__()是python类中的一种内置方法也称魔法方法,这种在类中统一以_ _开头_ _(注意是两个下划线)结尾的方法,都属于类的内置方法,常用的魔法方法还有__init__,__new__,__del__,__str__,__repr__,等等。

1.今天主要讲一下__call__()的用法

__call__方法是把对象当成函数来使用的时候,会自动调用,也就是说把类的实例化对象,变成一个可以调用的对象,可以让实例对象可以像函数一样被调用。
在python官网里面说的是,此方法会在实例作为一个函数被“调用”时被调用。
python官网

下面直接来看代码理解吧!

输入:

class A:
    # 定义__call__方法
    def __call__(self, a, b):
        print("调用__call__()方法,把对象当成函数来使用", a, b)
    def hello(self, e, f):
        print("调用hello" + e + f)
    
        
c = A()
c("我是参数a", "你是参数b")  # 调用方法一
print("-" * 100)
c.__call__("我是参数a", "你是参数b")  # 调用方法二
print("*" * 100)
c.hello("我是参数e", "你是参数f")

结果

调用__call__()方法,把对象当成函数来使用 我是参数a 你是参数b
----------------------------------------------------------------------------------------------------
调用__call__()方法,把对象当成函数来使用 我是参数a 你是参数b
****************************************************************************************************
调用hello我是参数e你是参数f

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由上可以看到,通过在A 类中实现 __call__() 方法,变为了可调用对象。使的 c 实例对象可直接用c()的方式输入参数a,b,不需要再.hello()调用。

2.这里再举一个自定义函数的例子,例如:

随便定义一个函数
输入

def say():
    print("小白一起学python")
say()  # 调用方法一
print("-" * 100)
say.__call__()  # 调用方法二

输出

小白一起学python # 调用方法一
----------------------------------------------------------------------------------------------------
小白一起学python # 调用方法二

总结

call方法是把对象当成函数来使用的时候,会自动调用。
参考链接
链接: link
链接: link
链接: link
链接: link

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值