一个类只有一个实例

使用场景

  1. 数据库连接

Demo

  1. """
  2. 单例模式
  3. """
  4. class SingleObject:
  5. __instance = None
  6. def __new__(cls, *args, **kwargs):
  7. if cls.__instance is None:
  8. cls.__instance = super().__new__(cls)
  9. return cls.__instance
  10. def __init__(self, name):
  11. self.name = name
  12. if __name__ == '__main__':
  13. a = SingleObject("ming")
  14. print(a.name)
  15. b = SingleObject("uzi")
  16. print(b.name)
  17. print(a.name)
  18. print(a is b)