在Python中,函数名前后各加两个下划线(例如 __function_name__
)通常表示这是一个特殊方法或者魔法方法。这样的函数在Python内部使用,或者作为某些特定操作(如属性访问、类型转换等)的钩子。
例如,如果你定义了一个类并在这个类中有一个名为 __init__
的方法,那么这个方法会在创建类的新实例时自动被调用。
特殊方法通常以双下划线开头和结尾,这是因为单下划线开头的名称是留给实现细节的,而双下划线开头的名称可以用于自定义。
这种命名约定主要是为了避免与Python的内部方法发生命名冲突,但使用它们也可以为其他开发者提供一种明确的信号,表明这个方法有特殊的意义或用途。
以下是一些常见的特殊方法:
__init__
: 初始化对象。__call__
: 使对象可调用。__str__
或__repr__
: 返回对象的字符串表示。__getitem__
: 实现索引操作。__setitem__
: 实现索引赋值操作。__delitem__
: 实现索引删除操作。__len__
: 返回对象的长度。__eq__
: 实现等于操作。__ne__
: 实现不等于操作。__lt__
,__le__
,__gt__
,__ge__
: 实现比较操作。
这只是其中的一小部分,Python有很多其他的特殊方法,可以满足各种不同的需求。