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
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
本文地址:
/show-273546.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。