Python类中一个非常特殊的实例方法,即 _ _call _ _()
。该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。 __call__
方法的参数就是调用实例时需要的参数。
可调用对象均具有__call__()
方法!!
class CLanguage:
# 定义__call__方法
def __call__(self,name,add):
print("调用__call__()方法",name,add)
clangs = CLanguage()
clangs("C语言中文网","http://c.biancheng.net")
结果:
可以看到,通过在 CLanguage 类中实现 __call__()
方法,使的 clangs 实例对象变为了可调用对象
那就要问了,什么才是可调用对象?
Python 中,凡是可以将 () 直接应用到自身并执行,都称为可调用对象。可调用对象包括自定义的函数、Python 内置函数以及现在讲的所讲的类实例对象。
对于可调用对象,实际上“名称()”可以理解为是“