python calss 中的__call__和__init__方法.
时间: 2023-10-29 09:05:13 浏览: 138
详解Python中的__new__、__init__、__call__三个特殊方法
在Python中,__call__和__init__方法是Python类中的特殊方法。
__init__方法是一个构造函数,用于在创建类的实例时进行初始化操作。例如,当你实例化一个类时,__init__方法会自动调用并传递相应的参数。在__init__方法中,你可以设置对象的属性、执行一些必要的操作或者初始化一些变量。
__call__方法是一个可调用对象,使得一个类的实例可以像函数一样被调用。当你在一个类中定义了__call__方法后,你可以直接使用实例名加小括号的方式调用类的实例,就像调用一个函数一样。
在引用的示例中,类A中的__call__方法允许实例a像函数一样被调用。当我们执行a()时,会打印出'i can be called like a function'。
__init__和__call__方法可以在同一个类中共存,并且起到不同的作用。__init__方法用于对象的初始化,而__call__方法则使得对象可以被调用。
在引用的示例中,我们可以看到两种方式定义了一个计算两个数相加的类。第一个类Add使用了__init__方法,在实例化时传入了两个参数,然后通过add_num方法计算并输出了相加的结果。第二个类Add使用了__call__方法,实例化时没有传入参数,而是直接在实例a后的小括号内传入了两个参数,然后通过add_num方法计算并输出了相加的结果。
总结起来,__init__方法用于初始化对象,而__call__方法使得对象可以像函数一样被调用。这两个方法在Python类的定义中非常常见且有着重要的作用。
阅读全文