Python 的数据模型是其核心机制之一,理解它对于掌握 Python 编程至关重要。在 Python 中,我们通过魔法方法(Magic Methods),也称为特殊方法(Special Methods,以双下划线开头和结尾)来定义对象的行为。这些方法构成了 Python 的对象协议,允许我们自定义类的行为,使其表现得像内置类型一样。
一、构造与初始化
对象的创建过程涉及两个关键方法:__new__ 和 __init__。
class MyClass:
def __new__(cls, *args, **kwargs):
# __new__ 是静态方法,负责创建实例
instance = super().__new__(cls)
return instance
def __init__(self, value):
# __init__ 负责初始化已创建的实例
self.value = value
my_instance = MyClass(5)
print(my_instance.value) # 输出:5
__new__ 返回一个实例,通常不需要重写,除非需要控制实例的创建(如单例模式或不可变类型)。__init__ 接收实例作为第一个参数,用于设置属性。如果 __new__ 返回了当前类的实例,__init__ 才会被调用。
二、字符串表示
__repr__ 和 __str__ 定义了对象的字符串形式。
class MyClass:
def __init__(self, value):
self.value = value
def __repr__(self):
# repr 应返回开发友好的明确表示,常用于调试
return f'MyClass(value={self.value})'
def __str__(self):
# str 应返回用户友好的表示,常用于打印
return str(.value)
my_instance = MyClass()
((my_instance))
((my_instance))


