实现代码:
#!/usr/bin/env python # -*- coding: utf-8 -*- import threading class Singleton(object): _lock = threading.Lock() def __init__(self, a, b): pass def __new__(cls, *args, **kwargs): if not hasattr(Singleton, "_instance"): with Singleton._lock: if not hasattr(Singleton, "_instance"): Singleton._instance = object.__new__(cls) Singleton.client = hello(args[0], args[1]) return Singleton._instance def hello(a, b): print 'ok', a, b return 'hello' if __name__ == '__main__': a = Singleton('a', 'b') b = Singleton('c', 'd') c = Singleton('e', 'f') print a.client print b.client print c.client
运行效果:
参考链接:
https://www.cnblogs.com/tqsummer/archive/2011/01/24/1943315.html
https://www.cnblogs.com/huchong/p/8244279.html