如何生成一个单子类?

在面向对象编程中,通常会对任何要实现的功能都抽象为类。但有些在运行时只有一个类实例存在, 例如一个全局的配置文件对象。

如何从技术上限制只有一个对象存在,这就是单子类的应用场景。

python天然存在一个类对象是唯一的, 这个行为可以作为一个单子类来使用。例如::

class Singleton:
    def getInstance() :
        return Singleton

a1 = Singleton.getInstance();
a1.name="book"

a2 = Singleton.getInstance();

print(a1 is a2)   #输出为True

还有其他的实现方式,但都存在一些问题或者比较复杂。