设计模式——单例模式

单例,顾名思义,在使用过程中,每次在类实例化时,只有一个对象。单例书写:

方式一:

Python的模块他自身就是一个单例的,因为它在程序中只被加载一次。故,可以直接写一个模块,将你需要的方法和属性,写在模块中当做函数和模块作用域的全局变量即可,根本不需要写类。例如:

# singleton.py

class Singleton(object):

    def test(self):
        pass


singleton_obj = Singleton()
ceshi.py

from singleton import singleton_obj
singleton_obj.test()

方式二:

class Singleton(object):
	def __new__(cls, *args, **kwargs):
		if not hasattr(cls, '_instance'):
			orig = super(Singleton, cls)
			cls._instance = orig.__new__(cls, *args, **kwargs)
		return cls._instance


obj1 = Singleton()

obj2 = Singleton()

print(obj1 == obj2)  # True
print(id(obj1))  # 2109926388232
print(id(obj2))  # 2109926388232

待续。。

以上。

原文地址:https://www.cnblogs.com/lovebkj/p/14582527.html