python __new__() 方法描述
时间: 2023-10-24 10:09:00 浏览: 101
浅谈python中的__init__、__new__和__call__方法
5星 · 资源好评率100%
`__new__()` 是一个特殊的静态方法,用于创建并返回一个新对象。它在对象被创建之前被调用,以便进行一些必要的初始化操作。通常情况下,`__new__()` 方法不需要手动调用,Python 解释器会自动调用它。
`__new__()` 方法的第一个参数是类本身,后面可以跟上其他参数。它返回一个新的对象,该对象是类的实例。`__new__()` 方法的返回值将传递给 `__init__()` 方法的第一个参数 `self`,用于初始化实例的属性。
需要注意的是,`__new__()` 方法比 `__init__()` 方法先被调用,因此在 `__new__()` 方法中创建对象时,还不能访问实例的属性。
下面是一个简单的示例,演示了如何使用 `__new__()` 方法创建一个新的对象:
```python
class MyClass:
def __new__(cls, *args, **kwargs):
print("Creating a new object...")
instance = super().__new__(cls)
return instance
def __init__(self, name):
print("Initializing the object...")
self.name = name
obj = MyClass("test")
print(obj.name)
```
输出:
```
Creating a new object...
Initializing the object...
test
```
在这个例子中,`__new__()` 方法打印了一条消息,并使用 `super().__new__(cls)` 创建了一个新的对象。该对象被传递给 `__init__()` 方法,用于初始化实例的属性。最后,我们创建了一个 `MyClass` 类的实例,并打印出了它的 `name` 属性。
阅读全文