Python 语法基础 单例
·
方法1
重写new函数
class Singleton:
obj = None
def __new__(cls, *args, **kwargs):
if cls.obj == None:#如果实例已经存在 不再创建新的对象
cls.obj=super().__new__(cls)
return cls.obj
s1= Singleton()
print(s1.obj)
s2= Singleton()
print(s2.obj)
方法2
导入一个模块(.py文件)
模块天生是单例
#新建一个.py文件
class singleCls:
def funa(self) :
print("执行单例方法")
s = singleCls()
#然后在另一个里导入 s1 和s2会是同一个对象
from SingletonPy import s as s1
from SingletonPy import s as s2
print(s1)#<SingletonPy.singleCls object at 0x0000000001162E10>
print(s2)#<SingletonPy.singleCls object at 0x0000000001162E10>
更多推荐


所有评论(0)