Python实现单例

单例装饰器

  • 在网上查到很多方式,选择一种比较pythonic的方式
1
2
3
4
5
6
7
8
9
def singleton(cls, *args, **kwargs):
instances = {}

def _singleton():
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]

return _singleton

使用

1
2
3
4
5
6
7
8
@singleton
class HttpHelper:
def __init__(self):
pass

name = 'http helper'
......
....
------ 本文结束 🎉🎉 谢谢观看  ------