Python中的单例设计模式__new__方法
Posted hisweety
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的单例设计模式__new__方法相关的知识,希望对你有一定的参考价值。
当我们创建实例化一个类时,实际上是使用了Object内置的__new__方法。另外,类中的self,就是通过__new__方法创建的。
class A: def __new__(self):pass
a=A()
我们可以测试下这个原理:
class B: def __init__(self): print(‘我这是一个inti方法‘) def __new__(cls): print(‘我是一个New方法‘) b=B()
运行结果:我是一个New方法
对于__new__这个方法来讲,我们可以用它来实现单例设计模式:
class A: __instance=False def __init__(self,name,age): self.name=name self.age=age def __new__(cls,*args,**kwargs): if cls.__instance: return cls.__instance cls.__instance=object.__new__(cls) return cls.__instance a=A(‘fanncy‘,90) b=A(‘json‘,100) print(a.name) print(b.name) 运行结果:json json
以上是关于Python中的单例设计模式__new__方法的主要内容,如果未能解决你的问题,请参考以下文章