單例模式 與 網絡編程
阿新 • • 發佈:2018-08-28
name div 二層 ins 包括 lose ces 綁定 war
單例模式:
定義:多次實例化都指向同一個內存地址
單例模式1 (綁定給類來 classmethod)
class People: isinstances = None def __init__(self,name): self.name = name @classmethod def auth(cls): if cls.isinstances == None: cls.isinstances = cls(name) return cls.isinstances單例模式1(classmethod)else:return cls.isinstances
單例模式2 (裝飾器來驗證)
name = ‘x‘ def auth(cls): isinstance = cls(name) def inter(*args,**kwargs): if args or kwargs: obj = cls(*args,**kwargs) return obj else:return isinstance return inter @auth class People:單例模式2(裝飾器)def __init__(self,name): self.name = name obj1 = People() obj2 = People() print(obj1) print(obj2)
單例模式3 (通過元類來實現)
class Mymeta(type): def __init__(cls,class_name,bass_class,class_dic): cls.__isinstance = cls(‘x‘) def __call__(cls, *args, **kwargs): if args or通過元類來實現kwargs: obj = cls.__new__(cls) cls.__init__(obj,*args,**kwargs) return obj else:return cls.__isinstance class auth(metaclass=Mymeta): def __init__(self,name): self.name = name obj1 = auth() obj2 = auth() print(obj1) print(obj2)
單例模式4 (通過倒模塊來實現)
def f1(): from settings import isinstances print(isinstances) def f2(): from settings import isinstances print(isinstances) f1() f2()
網絡編程:
服務端與客戶端
服務端:(並發)同時給多個用戶服務
對外一直提供服務
地址一直不變
服務端應支持並發
網絡: 用來數據交互(通信)
互聯網協議:(統一通信標準)即 OSI 七層協議
第一層:物理層 (發送高低電壓, 高電壓1,低電壓0)
第二層:數據鏈路層(以太網協議 ethernet)
以數據包的形式:(靠吼)
報頭:heat (包括發送地址,接受地址) 發送地址,接收地址指網卡的地址(mac)
數據:date
單例模式 與 網絡編程