向現有Python 物件動態添加方法
與類別定義的方法不同,通常不鼓勵在Python 中的現有物件添加方法。但是,在某些情況下這可能是必要的。
理解函數與綁定方法
在 Python 中,函數與綁定方法不同。綁定方法與實例關聯並將其作為第一個參數傳遞給方法。另一方面,函數是未綁定的。
修改類別屬性
您可以透過修改類別的定義來為類別新增方法:
class A: def foo(self): print("foo") A.fooFighters = fooFighters # Attach the fooFighters function as a method
這將更新 A類別的所有實例,包括現有的
將方法附加到實例
要將方法附加到特定實例,可以使用types.MethodType 函數:
import types a.barFighters = types.MethodType(barFighters, a) # Bind the barFighters function to instance a
這確保方法正確綁定到
限制
雖然可以向實例動態添加方法,但存在限制:
替代方案
不要直接向物件加入方法,請考慮以下替代方案:
以上是如何動態新增方法到Python物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!