2021-08-26 Python之单例模式

#单例模式
#开发模式:单例模式

 1 class Student:
 2     pass
 3 
 4 s=Student()
 5 s1=Student()
 6 s2=Student()
 7 
 8 print(s)
 9 print(s1)
10 print(s2)
 1 class Singleton:
 2     
 3     #私有化 单例的地址就存在于__instance,开辟一次内存地址,多次使用
 4     
 5     __instance=None
 6 
 7     #重写父类__new__
 8     def __new__(cls):
 9         print('----------->__new__')
10 
11         if cls.__instance is None:                            #判断是否为空值,是否开辟了内存空间
12             print('----------------------->1')             #
13             cls.__instance=object.__new__(cls)          #利用 object.__new__开辟一个内存地址
14             print(cls.__instance)
15             return cls.__instance
16         else:
17             return cls.__instance
18             print('---------------------->2')
19             print(cls.__instance)
20 
21 s=Singleton()
22 s1=Singleton()
23 print(dir(Singleton))
24 print(s)
25 print(s1)
26 #2个地址相同

 

posted @ 2021-08-26 13:30  admin-xiaoli  阅读(45)  评论(0)    收藏  举报