Python饿汉式和懒汉式单例模式的实现
# 饿汉式
class Singleton(object):
# 重写创建实例的__new__⽅法
def __new__(cls):
# 如果类没有实例属性,进⾏实例化,否则返回实例
python单例模式if not hasattr(cls, 'instance'):
cls.instance = super(Singleton, cls).__new__(cls)
return cls.instance
饿汉式在创建的时候就会⽣成实例
# 懒汉式
class Singleton(object):
__instance = None
def __init__(self):
if not self.__instance:
print('调⽤__init__,实例未创建')
else:
print('调⽤__init__,实例已经创建过了:', __instance)
@classmethod
def get_instance(cls):
# 调⽤get_instance类⽅法的时候才会⽣成Singleton实例
if not cls.__instance:
cls.__instance = Singleton()
return cls.__instance
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论