双下划线开头和结尾的方法和属性是Python中的特殊方法(也被称为魔术方法或魔法方法)。这些方法在类的定义中具有特殊的含义,用于实现一些特定的行为和功能。
以下是一些常见的双下划线开头和结尾的特殊方法和属性:
-
__init__
:- 特殊方法
__init__
用于初始化一个对象,在创建对象时自动调用。它是构造方法。
- 特殊方法
-
__str__
和__repr__
:__str__
用于返回一个可读的字符串表示对象,可以通过内置函数str()
调用。__repr__
用于返回一个对象的字符串表示,通常是一个可以用来重建对象的表达式,可以通过内置函数repr()
调用。
-
__len__
:__len__
用于返回对象的长度,可以通过内置函数len()
调用。
-
__getitem__
和__setitem__
:__getitem__
用于通过索引访问对象的元素。__setitem__
用于通过索引设置对象的元素。
-
__iter__
和__next__
:__iter__
用于返回一个迭代器对象,可以通过内置函数iter()
调用。__next__
用于获取下一个迭代器元素,可以通过内置函数next()
调用。
-
__del__
:__del__
用于在对象被销毁时进行清理操作。
-
__eq__
和__ne__
:__eq__
用于定义对象的相等性,可以通过==
运算符调用。__ne__
用于定义对象的不等性,可以通过!=
运算符调用。
-
__lt__
、__le__
、__gt__
、__ge__
:- 用于定义对象的比较操作,分别对应
<
、<=
、>
、>=
运算符。
- 用于定义对象的比较操作,分别对应
-
__call__
:__call__
允许将对象像函数一样调用,可以实现对象的可调用行为。
这些是一些常见的特殊方法,它们可以在类的定义中被重写,从而实现自定义的行为。特殊方法提供了对Python语言特性的灵活利用,使得类的实例可以支持各种内置函数和语法特性。