Python中如何详细理解并使用__call__方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计797个文字,预计阅读时间需要4分钟。
Python 类中一个独特的实例方法:`__call__()`。该方法使得类的实例可以被像函数一样调用,类似于在类中重载了 `()` 运算符。这使得类实例可以拥有函数的行为,例如通过对象名直接调用。例如:
本节再介绍 Python 类中一个非常特殊的实例方法,即 __call__()。该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。举个例子:
class CLanguage: # 定义__call__方法 def __call__(self,name,add): print("调用__call__()方法",name,add) clangs = CLanguage() clangs("C语言中文网","c.biancheng.net") 程序执行结果为:
调用__call__()方法 C语言中文网 c.biancheng.net
可以看到,通过在 CLanguage 类中实现 __call__() 方法,使的 clangs 实例对象变为了可调用对象。对于可调用对象,实际上“名称()”可以理解为是“名称.__call__()”的简写。Python 中,凡是可以将 () 直接应用到自身并执行,都称为可调用对象。可调用对象包括自定义的函数、Python 内置函数以及本节所讲的类实例对象。
本文共计797个文字,预计阅读时间需要4分钟。
Python 类中一个独特的实例方法:`__call__()`。该方法使得类的实例可以被像函数一样调用,类似于在类中重载了 `()` 运算符。这使得类实例可以拥有函数的行为,例如通过对象名直接调用。例如:
本节再介绍 Python 类中一个非常特殊的实例方法,即 __call__()。该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。举个例子:
class CLanguage: # 定义__call__方法 def __call__(self,name,add): print("调用__call__()方法",name,add) clangs = CLanguage() clangs("C语言中文网","c.biancheng.net") 程序执行结果为:
调用__call__()方法 C语言中文网 c.biancheng.net
可以看到,通过在 CLanguage 类中实现 __call__() 方法,使的 clangs 实例对象变为了可调用对象。对于可调用对象,实际上“名称()”可以理解为是“名称.__call__()”的简写。Python 中,凡是可以将 () 直接应用到自身并执行,都称为可调用对象。可调用对象包括自定义的函数、Python 内置函数以及本节所讲的类实例对象。

