📜  Python魔术方法

📅  最后修改于: 2020-10-28 01:19:02             🧑  作者: Mango

Python魔术方法

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)函数时将调用它。