欢迎访问宙启技术站
智能推送

Python中new()函数的实例演示

发布时间:2023-12-19 02:31:05

在Python中,new()函数是一个内置的魔术方法,用于创建一个类的实例。new()方法在__init__()方法之前被调用,并返回一个类的实例。通常情况下,我们不需要直接使用new()方法,因为它由Python解释器自动调用。但是,在某些情况下,我们可能需要重写new()方法来自定义类的实例创建过程。

下面是一个简单的示例,演示了如何使用new()方法创建一个自定义的类的实例:

class Person:
    def __new__(cls, name, age):
        print("Creating a new instance of Person")
        instance = super().__new__(cls)
        instance.name = name
        instance.age = age
        return instance

    def __init__(self, name, age):
        print("Initializing a Person instance")
        self.name = name
        self.age = age
        
person = Person("John", 25)
print(person.name)  # Output: John
print(person.age)   # Output: 25

在上面的示例中,我们定义了一个Person类,并重写了new()方法。在new()方法中,我们通过调用super().__new__(cls)来创建一个类的实例。然后,我们将nameage参数分配给实例的属性nameage。最后,我们返回这个实例。

new()方法之后,Python将自动调用__init__()方法来初始化新创建的实例。在__init__()方法中,我们再次将nameage参数分配给实例的属性。最后,我们打印了person对象的nameage属性。

执行上述代码,会输出以下内容:

Creating a new instance of Person
Initializing a Person instance
John
25

从输出中可以看到,在创建实例时,new()方法先于__init__()方法被调用,然后再调用__init__()方法来初始化实例。