class Classname(object):
def __init__(self, p1, p2=''):
self.p1 = p1
self.p2 = p2
# @Classname.decorator
def method_one(self, p_list):
return function_one(p_list)
def method_one(self, p_list):
return function_two(p_list)
def method_one(self, p_list):
return function_three(p_list)
Ein Großteil des Codes sieht so ausmethod_one
调用funciton_one
,但是现在要根据用户是否传入p2
来改变调用function_xxx
的方法,希望改成这个样子function_xxx
Ich kann ihn nicht ändern.
def method_two(self, p_list):
if self.p2:
return function_two(self.p2, p_list)
else:
return function_two(p_list)
Ich habe darüber nachgedacht, einen Dekorator zu verwenden, um damit umzugehen, aber es scheint, dass die Verwendung eines Dekorators nur eine Ebene außerhalb der Funktion umschließen kann, aber die aufrufende Methode nicht aufdringlich ändern kann.
Wenn Sie sie noch benötigen Zukunft Es ist möglich, die aufrufende Methode basierend auf self.p3 self.p4 zu ändern
你可以使用元类魔改类,这里放出个例子