為現有Python 物件附加附加方法
在Python 中,通常不建議修改現有物件的方法,但在某些物件的方法情況下,可能有必要。本文探討如何在建立實例後為實例新增方法,重點介紹函數和綁定方法之間的差異。
理解函數與綁定方法
Python 中,函數是未綁定的,而綁定方法則與特定實例相關聯。當呼叫綁定方法時,實例將自動作為第一個參數傳遞。當在類別定義中定義方法時,就會發生這種綁定。
更新類別層級方法
修改在類別層級定義的方法非常簡單。您可以簡單地為類別的方法屬性指派一個新函數:
class A: def bar(self): print("bar") A.fooFighters = fooFighters
此變更適用於該類別的所有實例,包括現有實例。
新增實例-具體方法
將方法附加到單一實例更為複雜。將函數直接指派給實例的屬性不會建立綁定方法,從而導致使用零參數呼叫時發生錯誤。
要為單一實例建立綁定方法,我們可以使用 MethodType 函數types 模組:
import types a.barFighters = types.MethodType(barFighters, a)
現在,當呼叫 a.barFighters() 時,該方法會綁定到 a實例,並且無需任何額外的操作即可調用它
保留實例隔離
需要注意的是,修改特定於實例的方法不會影響同一類的其他實例。每個實例都維護自己的一組屬性,包括方法。
以上是如何為現有 Python 物件新增方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!