揭示函數、未綁定方法和綁定方法的本質
類別和方法的概念是物件導向程式設計範例的基礎。了解函數、未綁定方法和綁定方法之間的細微差別和關係對於掌握 Python 方法解析系統的複雜性至關重要。
定義實體
轉換與可訪問性
主要差異
等價與用法
在Python 2和Python 3中,以下表達式為功能等效:
f1(C())
C.f1(C())
C().f1()
將函數綁定到實例會建立一個修改版本,其中第一個參數本質上設定為給定實例。本質上,此綁定方法的行為與以下替代形式相同:
lambda *args, **kwargs: f1(C(), *args, **kwargs)
functools.partial(f1, C())
從Unbound 到Bound
從Unbound 到Bound
類別的Python 2 實例沒有與未綁定方法相對應的直接屬性,這些屬性是相反,可以透過類別本身的__dict__ 屬性進行檢索。但是,存取實例上的非綁定方法會導致其自動轉換為綁定方法。結論
掌握函數、非綁定方法和綁定方法之間的區別使您能夠有效地利用Python的方法解析機制。理解綁定和轉換的機制使您能夠輕鬆應對物件導向編碼的複雜性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3