【python】魔术方法大全——基础篇
在Python中,魔术方法(magic methods)是面向对象编程中一些特殊的方法,它们通常以双下划线开头和结尾,例如__init__
, __repr__
, __add__
等。这些方法提供了自定义对象行为的途径。
以下是一些常见的Python魔术方法及其简单示例:
__init__
: 构造器,用于初始化对象。
class MyClass:
def __init__(self, value):
self.value = value
obj = MyClass(10)
__repr__
: 转化为官方字符串表示形式。
class MyClass:
def __init__(self, value):
self.value = value
def __repr__(self):
return f'MyClass({self.value!r})'
obj = MyClass(10)
print(repr(obj)) # 输出: MyClass(10)
__str__
: 转化为用户友好的字符串表示形式。
class MyClass:
def __init__(self, value):
self.value = value
def __str__(self):
return f'Value is: {self.value}'
obj = MyClass(10)
print(str(obj)) # 输出: Value is: 10
__add__
: 定义加法运算。
class MyClass:
def __init__(self, value):
self.value = value
def __add__(self, other):
return self.value + other.value
obj1 = MyClass(10)
obj2 = MyClass(20)
print(obj1 + obj2) # 输出: 30
__iter__
: 创建迭代器。
class MyClass:
def __init__(self, values):
self.values = values
def __iter__(self):
for value in self.values:
yield value
obj = MyClass([1, 2, 3])
for item in obj:
print(item) # 输出: 1 2 3
__getitem__
: 索引操作。
class MyClass:
def __init__(self, values):
self.values = values
def __getitem__(self, key):
return self.values[key]
obj = MyClass([1, 2, 3])
print(obj[1]) # 输出: 2
这些方法是Python面向对象编程的核心,有助于创建更加灵活和可定制的代码。
评论已关闭