Je veux passer la méthode de classe et un argument par défaut à une autre méthode de classe, afin que je puisse réutiliser la méthode comme @classmethod
:Puis-je passer la méthode de classe et un argument par défaut à une autre méthode de classe
@classmethod
class foo:
def func1(self,x):
do somthing;
def func2(self, aFunc = self.func1):
# make some a call to afunc
afunc(4)
C'est pourquoi lorsque la méthode func2
est appelée dans la classe aFunc
est self.func1
par défaut, mais je peux appeler cette même fonction de l'extérieur de la classe et lui passer une fonction différente à l'entrée.
je reçois:
NameError: name 'self' is not defined
Voici ma configuration:
class transmissionLine:
def electricalLength(self, l=l0, f=f0, gamma=self.propagationConstant, deg=False):
Mais je veux être en mesure d'appeler electricalLength
avec une autre fonction pour le gamma, comme:
transmissionLine().electricalLength (l, f, gamma=otherFunc)
Voir http://stackoverflow.com/questions/3083692/using-class-static-methods-as-default-parameter-values-within-methods-of-the-same pour une excellente solution dans un situation quelque peu similaire. – max