python中对单例模式的理解
Posted 想翻身的猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中对单例模式的理解相关的知识,希望对你有一定的参考价值。
class Foo(object): instance = None def __init__(self): pass def process(self): return ‘1234565‘ @classmethod #版本1单例模式 def get_instance(cls): if Foo.instance: return Foo.instance else: Foo.instance = Foo() return Foo.instance obj1 = Foo() print(obj1.process()) obj2 = Foo() print(obj2.process()) obj1不相等obj2 id(obj1) obj1 = Foo.get_instance() obj2 = Foo.get_instance() 此时的obj1=obj2 class Foo(object): instance = None def __init__(self): self.name = ‘alex‘ def __new__(cls, *args, **kwargs): if Foo.instance: return Foo.instance else: obj = object.__new__(cls, *args, **kwargs) #创建对象的本质是new new先执行 return return obj obj1 = Foo() obj2 = Foo() print(id(obj1), id(obj2)) obj1=obj2 单例模式2 高级版 永远用一个对象的实例! 创建的对象内部封装的值是一样的 就搞成单例模式
以上是关于python中对单例模式的理解的主要内容,如果未能解决你的问题,请参考以下文章