似乎有很多方法可以在Python中定义单例。关于堆栈溢出是否有共识?
我没有真正的需要,因为具有功能(而不是类)的模块可以很好地用作单例。它的所有变量都将绑定到模块,该模块无论如何都无法重复实例化。
如果您确实希望使用类,则无法在Python中创建私有类或私有构造函数,因此,您只能通过使用API的约定来保护自己免受多重实例化。我仍然将方法放在模块中,并将模块视为单例。