Python 的单例模式

2018-08-29  本文已影响12人  Paycation

单例模式(Singleton)是一种程序设计模式,它保证在程序中,应用该模式的类只有一个实例。
Python 其实没有什么必要用 Singleton,至少我没有用到过。但是有必要记住这种设计模式,以防万一。
它的实现并不复杂:

class Singleton:
    __instance = None

    def __new__(cls, *args, **kwargs):
        if cls.__instance is None:
            cls.__instance = super().__new__(cls)
        return cls.__instance

这样一来,Singleton() 对象及其子类的对象都是唯一的实例。
下面的代码应该返回 True,以及一模一样的 id 值。

s1 = Singleton()
s2 = Singleton()

print(s1 == s2)
print(id(s1), id(s2))
上一篇 下一篇

猜你喜欢

热点阅读