在Python 中綁定未綁定方法
將未綁定方法綁定到實例是Python 程式設計中的一個常見任務,尤其是在使用wxPython 等框架時。然而,簡單地對未綁定方法呼叫bind()方法會導致錯誤。
問題
綁定未綁定方法時,程式會失敗,因為未綁定方法需要呼叫一個實例。直接綁定它們而不呼叫它們會產生錯誤。
解決方案
幸運的是,這個問題有兩種解決方案。
使用描述符
Python 中的函數也是描述符,這表示它們有一個 get 方法。此方法允許將未綁定的方法綁定到實例。若要使用描述符綁定未綁定方法:
bound_handler = handler.__get__(self, MyWidget)
使用自訂綁定函數
或者,您可以使用範例中的自訂綁定函數,例如bind()下面:
def bind(instance, func, as_name=None): bound_method = func.__get__(instance, instance.__class__) setattr(instance, as_name, bound_method) return bound_method
此函數允許您使用自訂名稱綁定未綁定的方法。
結論
透過使用描述符方法或自訂綁定函數,您可以綁定未綁定的方法而不呼叫它們,從而實現乾淨且可維護的程式碼結構。
以上是如何在Python中將未綁定方法綁定到實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!