文章目录
- python 类中的__call__是什么?
- 1.今天主要讲一下`__call__()`的用法
- 2.这里再举一个自定义函数的例子,例如:
- 总结
python 类中的__call__是什么?
在类class
中__call__()
是python类中的一种内置方法也称魔法方法,这种在类中统一以_ _
开头_ _
(注意是两个下划线)结尾的方法,都属于类的内置方法,常用的魔法方法还有__init__,__new__,__del__,__str__,__repr__,
等等。
1.今天主要讲一下__call__()
的用法
__call__
方法是把对象当成函数来使用的时候,会自动调用,也就是说把类的实例化对象,变成一个可以调用的对象,可以让实例对象可以像函数一样被调用。
在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
文章出处登录后可见!
已经登录?立即刷新