1. 程式人生 > >面向物件-鴨子型別

面向物件-鴨子型別

Python崇尚鴨子型別,即‘如果看起來像、叫聲像而且走起路來像鴨子,那麼它就是鴨子’

python程式設計師通常根據這種行為來編寫程式。例如,如果想編寫現有物件的自定義版本,可以繼承該物件

也可以建立一個外觀和行為像,但與它無任何關係的全新物件,後者通常用於儲存程式元件的鬆耦合度。

例1:利用標準庫中定義的各種‘與檔案類似’的物件,儘管這些物件的工作方式像檔案,但他們沒有繼承內建檔案物件的方法

class File:
    def read(self):
        pass

    def write(self):
        pass


class Disk:
    
def read(self): print('disk read') def write(self): print('disk write') class Text: def read(self): print('text read') def write(self): print('text write') disk=Disk() text=Text() disk.read() disk.write() text.read() text.write() #序列型別:列表list,元組tuple,字串str
l = list([1, 2, 3]) t=tuple(('a','b')) s=str('hello') print(l.__len__()) print(t.__len__()) print(s.__len__()) def len(obj): return obj.__len__() print(len(l)) print(len(t)) print(len(s))