本篇讲解的魔术方法:
-
__new__
-
__init__
-
__del__
-
__repr__
-
__format__
-
__bytes__
1. __new__
在Python中,__new__
方法是一个特殊的方法,用于控制对象的创建过程。理解 __new__
方法的机制对于掌握Python的类和对象模型是很有帮助的。下面是对 __new__
方法的详细介绍:
1.1 基本概念
__new__
方法:这是一个类方法,通常用于创建并返回一个类的新实例。它在实例化对象时被自动调用,比__init__
方法更早执行。- 返回值:
__new__
方法必须返回一个实例对象,通常是当前类的实例。如果返回None
,则不会调用__init__
方法。
1.2 方法签名
__new__
方法的基本签名如下:
class MyClass:
def __new__(cls, *args, **kwargs):
# 创建并返回一个新的实例
instance = super().__new__(cls)
return instance
cls
参数:表示当前类的引用,类似于self
参数。*args
和**kwargs
:表示传递给类构造函数的参数。
1.3 常见用法
1.3.1 基本实例化
当调用类构造函数(即类名加括号)时,__new__
方法会被调用。例如:
class MyClass:
def __new__(cls, *args, **kwargs):
print("MyClass __new__ method called&#