[英]How to override function in python for objects
我在 python 2.7 中有一個項目。 用戶會給我一個 function 實現,我將用用戶的實現覆蓋我的基本 class function。 會有很多用戶。
class Base():
def my_fun(self,x,y,z):
## to be overriden by user's function
from user_defined import user_function
base = Base()
base.my_fun = user_function
我是 python 的新手,如何在 python 中實現虛擬 function 之類的東西,或者實現此目的的最佳方法是什么。 此外,要覆蓋 function,我必須導入用戶定義了 function 的所有文件。 這如何在 for 循環中完成?
實例綁定方法的一些方法,選擇其中一種,循環函數,綁定。
base.my_fun = user_function.__get__(base)
第二種方式:
import types
base.my_fun = types.MethodType(user_function, base)
第三種方式:
from functools import partial
base.my_fun = partial(user_function, base)
最后一種方式:
def bind(instance, method):
def binding_scope_fn(*args, **kwargs):
return method(instance, *args, **kwargs)
return binding_scope_fn
base.my_fun = bind(base, user_function)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.