更新时间:2023-10-16 来源:黑马程序员 浏览量:

Python中的魔法方法(Magic Methods),也称为双下划线方法或特殊方法,用于自定义类的行为,以便与内置操作符(例如+、-、*、/、==等)和函数(例如len()、str()等)交互。以下是一些常见的魔法方法及其用途,以及相应的代码演示:

初始化方法,用于在创建类的实例时初始化属性。
class MyClass: def __init__(self, value): self.value = value obj = MyClass(42)
返回对象的字符串表示,通常用于将对象转换为可读性好的字符串。
class MyClass:
def __init__(self, value):
self.value = value
def __str__(self):
return f"MyClass instance with value {self.value}"
obj = MyClass(42)
print(obj) # 输出:MyClass instance with value 42 定义对象的加法行为。
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
定义对象的相等性比较行为。
class MyClass: def __init__(self, value): self.value = value def __eq__(self, other): return self.value == other.value obj1 = MyClass(42) obj2 = MyClass(42) print(obj1 == obj2) # 输出:True
定义对象的长度,常用于自定义容器类。
class MyList: def __init__(self, data): self.data = data def __len__(self): return len(self.data) my_list = MyList([1, 2, 3, 4, 5]) print(len(my_list)) # 输出:5
这些魔法方法只是Python中的一部分,还有其他用于自定义对象行为的魔法方法,具体用法取决于我们的需求。使用魔法方法可以使我们的自定义类更具Pythonic和可读性。
黑马程序员 AI 运维|大厂师资 + 全程服务,3.5 个月实现零基础高薪就业
2026-04-09黑马程序员 AI 运维|10 大就业方向 + 90%+ 就业率,解锁高薪职业路径
2026-04-09黑马程序员 AI 运维|10 大企业级项目实战,毕业即具备独立运维能力
2026-04-09黑马程序员 AI 运维|10 大技术阶段 + 10 大实战项目,从 Linux 到 AI 大模型运维全掌握
2026-04-09黑马程序员 AI 运维|云原生 + 大模型 + 信创三位一体,培养企业紧缺复合型运维人才
2026-04-09黑马程序员AI测试|上市品牌背书,实战赋能,助力冲击年薪30万+
2026-04-09