Python 3.x 的超級魔法:解開謎團
Python 3.x 在其super() 方法中引入了令人驚訝的轉折,允許不帶參數的呼叫。這種看似無害的改變在幕後卻帶來了重大的後果和內在的魔力。
揭開魔力
為了維護 DRY 原則,新的 super() 行為繞過了明確類別命名。它有一個特殊的 class 單元格,用於檢索原始類別對象,避免了困擾之前超級方法的重新綁定的陷阱。
魔法的後果
不幸的是,這個魔法有一個缺點。將 super() 名稱重新綁定到不同的變數(例如 super_)可能會破壞其功能。發生這種情況的原因是,只有在方法中引用 super 或 class 時才會建立儲存格。
實際陷阱
此行為可能會帶來風險毫無戒心的程式設計師:
超越 Super()
有趣的是,super() 並不是唯一受重新綁定問題影響的 Pythonic 實體。其他範例包括:PyPy 的RPython 中的
對開發人員的影響
雖然super() 的魔力很有用,但仍需謹慎。了解其複雜性有助於防止運行時錯誤。使用重新綁定時,程式設計師應考慮明確參考 class 或利用替代的 super() 呼叫方法。
以上是Python 3.x 的 Super() 在沒有參數的情況下如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!