【python】魔术方法大全——基础篇
warning:
这篇文章距离上次修改已过440天,其中的内容可能已经有所变动。
在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面向对象编程的核心,有助于创建更加灵活和可定制的代码。
评论已关闭