{site_name}

{site_name}

🌜 搜索

Python中的魔术方法(Magic Method)是指在类定义中以双下划线开头

Python 𝄐 0
python魔术方法str,python3 魔术方法,python魔法方法详解,python magic function,python中魔术方法,python常用魔术方法
Python中的魔术方法(Magic Method)是指在类定义中以双下划线开头和结尾的特殊方法,也称为双下划线方法或特殊方法。它们被调用以执行某些特定操作,例如实例化对象、比较对象、算术运算、迭代等。

以下是一些常见的魔术方法及其功能:

1. __init__(self, ...): 构造函数,在实例化对象时自动调用。
python
class MyClass:
def __init__(self, name):
self.name = name

obj = MyClass("ChatGPT")
print(obj.name) # 输出 ChatGPT


2. __str__(self): 将对象转换为字符串。
python
class MyClass:
def __init__(self, name):
self.name = name

def __str__(self):
return f"My name is {self.name}"

obj = MyClass("ChatGPT")
print(obj) # 输出 My name is ChatGPT


3. __add__(self, other): 加法运算符重载。
python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y

def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)

p1 = Point(1, 2)
p2 = Point(3, 4)
p3 = p1 + p2
print(p3.x, p3.y) # 输出 4 6


4. __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)
print(p1 == p2) # 输出 True


5. __iter__(self): 迭代器方法,使对象可迭代。
python
class MyList:
def __init__(self, *args):
self.data = list(args)

def __iter__(self):
return iter(self.data)

my_list = MyList(1, 2, 3)
for item in my_list:
print(item) # 输出 1 2 3