ich will, so dass ich die Methode als @classmethod
wiederverwenden kann:Kann ich geben Klassenmethode als und ein Standard-Argument an einem anderen Klassenmethode
@classmethod
class foo:
def func1(self,x):
do somthing;
def func2(self, aFunc = self.func1):
# make some a call to afunc
afunc(4)
Das ist der Grund, wenn die Methode func2
in der Klasse aFunc
standardmäßig auf self.func1
aufgerufen wird, aber ich kann diese Funktion auch außerhalb der Klasse aufrufen und am Eingang eine andere Funktion übergeben.
ich:
NameError: name 'self' is not defined
Hier ist mein Setup:
class transmissionLine:
def electricalLength(self, l=l0, f=f0, gamma=self.propagationConstant, deg=False):
Aber ich möchte in der Lage sein electricalLength
rufen mit einer anderen Funktion für Gamma, wie:
transmissionLine().electricalLength (l, f, gamma=otherFunc)
Siehe http://stackoverflow.com/questions/3083692/using-class-static-methods-as-default-parameter-values-within-methods-of-the-same für eine große Lösung in einem etwas ähnliche Situation. – max