更新时间: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设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19