首先还是了解一下单例模式是什么意思吧:
单例模式即一个类有且仅有一个实例(不懂?看代码)
使用__new__方法:(方法有很多,目前只会了这种,嘻嘻)
首先要知道__new__()方法是在类准备将自身实例化时调用。
然后 上代码
class Danli(object):
def __new__(cls, *args, **kwargs):
if not hasattr(cls, '_instance'):
cls._instance = object.__new__(cls)
return cls._instance
def __init__(self):
pass
if __name__ == '__main__':
a = Danli()
b = Danli()
print(id(a))
print(id(b))
打印结果:
2823974512680
2823974512680
可以看出,是同一个实例对象