python類與對象詳解(3):簡化初始化過程

有時候我們編寫了很多類,并且已經將這些類當作數據結構來用,但是我們需要重復編寫大量重復且樣式統一的init()函數,這時候我們可以將初始化過程集中到一個單獨的init()函數中,并將其定義在一個公共的基類中。
代碼演示:

class Structure:
    _fields = []
    def __init__(self, *args):
        if len(args) != len(self._fields):
            raise TypeError('Expected {} arguments'.format(len(self._fields)))
        for name, value in zip(self._fields, args):
            setattr(self, name, value)

if __name__ == "__main__":
    class Stock(Structure):
        _fields = ["name", "price", "shares"]

這樣我們實例化時相當容易構建。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,556評論 25 708
  • 本章將會介紹 存儲屬性的初始賦值自定義構造過程默認構造器值類型的構造器代理類的繼承和構造過程可失敗構造器必要構造器...
    寒橋閱讀 782評論 0 0
  • 構造過程是使用類、結構體或枚舉類型的實例之前的準備過程。在新實例可用前必須執行這個過程,具體操作包括設置實例中每個...
    莽原奔馬668閱讀 700評論 0 3
  • 躲在被子下面的小小天地,好像回到很久以前。初中借著微弱的光線偷偷看故事書,高中拿著手機飛快按鍵給喜歡的人發送訊息,...
    f5fcfb7cc27d閱讀 270評論 0 0