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。
__neg__
一元运算符将调用此函数。
__ipow__
该函数在带参数的指数上调用。例如a ** = b。
__le__
使用<=运算符进行比较时会调用此函数。
_nonzero_
此函数返回对象的布尔值。调用bool(self)函数时将调用它。
评论前必须登录!
注册