Python中new()方法的应用实例
发布时间:2024-01-06 08:22:00
__new__() 方法是一个创建对象的静态方法,它返回一个实例化的对象。它是在实例化一个类时被调用的第一个方法,然后才调用 __init__() 方法。
下面是一个 __new__() 方法的使用示例:
class Singleton:
instance = None
def __new__(cls, *args, **kwargs):
if not cls.instance:
cls.instance = super().__new__(cls, *args, **kwargs)
return cls.instance
# 创建实例
s1 = Singleton()
s2 = Singleton()
print(s1)
print(s2)
print(s1 is s2)
在这个示例中,我们定义了一个称为 Singleton 的类。它是一个单例模式的实现,确保只有一个实例存在。
在 __new__() 方法中,我们首先检查类属性 instance 是否为 None。如果是,就调用父类的 __new__() 方法创建一个新的实例,并将其赋值给 instance 属性。否则,直接返回 instance 属性。
我们创建了两个对象 s1 和 s2,并输出它们的内存地址。由于 Singleton 类只能实例化一个对象,所以 s1 和 s2 的内存地址是一样的,这说明它们是同一个对象。
这是 __new__() 方法的典型使用示例。它可以用于创建单例模式、自定义元类等高级用途。
