{site_name}

{site_name}

🌜 搜索

在 Python 中,特殊方法是指以双下划线(__)开头和结尾的方法

Python 𝄐 0
python特殊语法,python特殊的数据类型,python特殊方法的意义,python特殊符号有哪些,python的特殊符号,python特殊代码
在 Python 中,特殊方法是指以双下划线(__)开头和结尾的方法。这些方法通常用于定义类的行为,例如支持迭代、比较等操作。Python 中有很多种特殊方法,每个方法都对应了一个特定的行为。

以下是几个常见的特殊方法及其作用:

1. __init__(self, ...): 初始化方法,创建对象时自动调用。
python
class Person:
def __init__(self, name):
self.name = name

p1 = Person("Alice")
print(p1.name) # 输出 "Alice"


2. __str__(self): 字符串表示方法,用于打印对象或将对象转换成字符串。
python
class Person:
def __init__(self, name):
self.name = name

def __str__(self):
return f"Person(name={self.name})"

p1 = Person("Alice")
print(str(p1)) # 输出 "Person(name=Alice)"


3. __eq__(self, other): 相等比较方法,用于判断两个对象是否相等。
python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y

def __eq__(self, other):
return self.x == other.x and self.y == other.y

p1 = Point(1, 2)
p2 = Point(1, 2)
p3 = Point(2, 3)
print(p1 == p2) # 输出 True
print(p1 == p3) # 输出 False


4. __len__(self): 长度方法,用于返回对象的长度。
python
class MyList:
def __init__(self, items):
self.items = items

def __len__(self):
return len(self.items)

lst = MyList([1, 2, 3])
print(len(lst)) # 输出 3


5. __iter__(self) 和 __next__(self): 迭代器方法,用于支持迭代操作。
python
class MyList:
def __init__(self, items):
self.items = items
self.index = 0

def __iter__(self):
return self

def __next__(self):
if self.index >= len(self.items):
raise StopIteration
value = self.items[self.index]
self.index += 1
return value

lst = MyList([1, 2, 3])
for item in lst:
print(item) # 输出 1、2 和 3