0
点赞
收藏
分享

微信扫一扫

在预训练语言模型主流架构

柠檬果然酸 2024-06-29 阅读 31
单例模式
1.单例模式
  • 作用: 保证某一类只有一个实例存在
 2.实现单例模式的方式       
  • 模块导入
    • 文件1.py
      
          class Test:
      
              def __init__(self,name):
      
      
                  self.name = name
      
      
      
          obj = Test(“何必”)
      
      
      文件2.py
      
        from 文件1.py import obj  # 仅有一个实例对象
      
  • 类装饰器
    • def singleton_model(func):
      
          obj = None
      
          def wrapper(*args,**kwargs):
      
              nonlocal obj
      
              if not obj:
      
                   obj = func(*args,**kwargs)
      
              return obj
          return wrapper
      
      
      @singleton_model  # Test = singleton_model(Test)
      class Test:
           def __init__(self,name):
      
              self.name = name
      
      obj = Test(“何必”)
      
      obj2 = Test("呵呵") #得到的对象内存地址跟obj一致
  • 类绑定方法
    • class Test:
      
          obj = None
      
          def __init__(self,name):
      
              self.name = name
      
      
          @classmethod
      
          def get_obj(cls,*args,**kwargs):  # 在类方法内部处理
      
              if not cls.obj:
      
                  cls.obj = cls(*args,**kwargs)
      
              return cls.obj
      
      
      obj = Test.get_obj("何必")
  • __new__方法
    • class Test:
      
          obj = None
      
          def __init__(self,name):
      
              self.name = name
      
      
          def __new__(cls,*args,**kwargs):
      
              if not cls.obj:
      
                  cls.obj = super().__new__(cls)
      
              return cls.obj
      
      
      obj = Test("何必")
      
      obj2 = Test("呵呵")
  • 元类
    • class MyType(type):
      
          obj = None
      
          def __call__(self,*args,**kwargs):
      
              if not self.obj:
                  
                  self.obj = self.__new__(self)
      
              self.__init__(self.obj,*args,**kwargs)
                  
              return self.obj    
      
      
      class Test(metaclass=MyType):
      
      
          def __init__(self,name):
      
              self.name = name
      
      
         
      
      
      obj = Test("何必")
      
      obj2 = Test("呵呵")

  • 并发
举报

相关推荐

0 条评论