python 適配器

什麼是適配器?就至關手機的轉換插頭同樣,讓usb接口換成三腳插。在python裏就是,讓不一樣的類擁有一樣的方法能夠調用。python

先看代碼spa

class A(object):  
    def __init__(self):
        self.s=''
    def aa(self,a):
        self.s = a
        print self.s
class B(object): def __init__(self): self.s=6 def bb(self,a): self.s = a+1 print self.s
class Adapt(object): def __init__(self,func): self.__dict__.update(func)
a
= A() b = B() c = Adapt(dict(aa=b.bb,aaa=a.aa)) a.aa(4) c.aa(4) c.aaa(4) b.bb(4)
輸出:
4
5
4
5
 

  適配器的主要實現是self.__dict__.update(func),經過此方法來更新Adapt類的屬性,參數func是以字典形式傳入。c = Adapt(dict(aa=b.bb,aaa=a.aa))是將在Adapt類內新建aa屬性,指向b.bb方法,aaa屬性,指向a.aa方法,那麼適配器Adapt就都有A類和B類的兩個類的屬性。通常來講,適配器是讓兩個不一樣類裏的不一樣方法具備相同的方法名稱,以方便代碼結構上編寫得更加方便、簡潔。
舉個例子:
  一樣是上面的代碼,假設我要運行a類的aa方法,b類的bb方法。b類的bb方法通過適配器後變成了c類的aa方法,因此就能夠使用如下for循環來表示了。
code

func_list = [a,c]
for i in func_list:
    i.aa(4)

這只是兩個方法,有必要用for循環嗎?兩個確定不必,可是若是10個呢?那就能夠省下不當代碼了。blog

相關文章
相關標籤/搜索