#coding=utf-8
"""
===========================
Author:多测师_王sir
Time:2020-10-06 22:49
Wechat:xiaoshubass
website:www.duoceshi.cn
===========================
"""
class MyClass(object):
__obj = None
@classmethod
def __new__(cls, *args, **kwargs):
if not cls.__obj:
#如果没有创建对象、就调用父类的new方法创建一个
cls.__obj = super().__new__(cls)
return cls.__obj
else:
#如果创建了、则把第一次的对象返回
return cls.__obj
#实例化==》创建对象
m1 = MyClass()
m2 = MyClass()
m3 = MyClass()
print(id(m1))
print(id(m2))
print(id(m3))
运行结果:内存地址都是一样的、说明根据MyClass类创建的对象都是同一个对象。
1549646200784
1549646200784
1549646200784
Python中的单例设计模式【多测师_王sir】
最新推荐文章于 2023-05-04 08:23:31 发布