python 单例类(__new__内置方法)

要实现python单例类首先要知道单例的意思

单例的意思就是无论你初始化多少个类,这些对象都是同一个,准确说内存地址都是同一块,你修改任何一个对象,其他对象都会跟着修改

所以要实现就是在开辟空间的时候进行设定,在python中开辟空间的方法是__new__()方法,所以代码如下

# 创建单例类
class Single:
    # 设置一个静态变量,在开辟空间时进行限制
    __STATIC = 0

    # 实现单例类方法,每次初始化对象时,进行判定,若是第一次初始化对象,就开辟一个空间并返回,若不是,则返回之前开辟好的空间
    def __new__(cls, *args, **kwargs):
        if cls.__STATIC == 0:
            cls.__STATIC = object.__new__(cls)
        return cls.__STATIC

    def __init__(self):
        pass

# 初始化两个对象
s1 = Single()
s2 = Single()
# 打印对象地址
print(s1)
print(s2)

打印结果为

<__main__.Single object at 0x0000026832D67A20>
<__main__.Single object at 0x0000026832D67A20>

猜你喜欢

转载自blog.csdn.net/qq_38115310/article/details/86669966
今日推荐