1. 程式人生 > >單例模式 與 網絡編程

單例模式 與 網絡編程

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

        
else:return cls.isinstances
單例模式1(classmethod)

單例模式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:
    
def __init__(self,name): self.name = name obj1 = People() obj2 = People() print(obj1) print(obj2)
單例模式2(裝飾器)

單例模式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

    

單例模式 與 網絡編程