文章目录

方法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>
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐