📅  最后修改于: 2020-10-28 01:19:02             🧑  作者: Mango
Python魔术方法定义为将“魔术”添加到类的特殊方法。它以双下划线开头和结尾,例如_init_或_str_。
内置类定义了许多魔术方法。 dir()函数可用于查看类继承的魔术方法的数量。它在方法名称中有两个前缀和后缀下划线。
它最常用于定义预定义运算符的重载行为。
__init__
在创建类的实例之后但在将其返回给调用方之前,将调用_init_方法。当类的实例像其他编程语言(例如C++,Java,C#,PHP等)的构造函数一样创建时,无需任何调用即可调用。这些方法也称为initialize,在_new_之后调用。它是您应在其中初始化实例变量的位置。
__str__
此函数计算对象的“非正式”或可很好打印的字符串表示形式,并且必须返回字符串对象。
__repr__
内置函数repr()调用此函数以计算对象的“正式”字符串表示形式,并返回类型的机器可读表示形式。 _repr_的目标是明确的。
__len__
此函数应返回对象的长度。
__call__
我们可以通过添加_call_ magic方法来使对象可调用,而_call_则是另一个不需要的方法。
如果在类中定义,则可以调用该类。但是,如果它是一个函数,则实例本身而不是修改。
__del__
就像_init_是构造函数方法一样,_del_就像是析构函数。如果您已在_init _中打开了文件,则_del_可以将其关闭。
__bytes__
它提供了一个对象的字节字符串表示形式,并应返回一个字符串对象。
__ge__
当使用> =运算符时,将调用此方法,并返回True或False。
__否__
一元运算运算符将调用此函数。
__ipow__
该函数在带参数的指数上调用。例如a ** = b。
__le__
使用<=运算符进行比较时会调用此函数。
_nonzero_
此函数返回对象的布尔值。调用bool(self)函数时将调用它。