Nun, ich bin versucht, dies zu tun:Fehler einen Methodennamen als Argument in einer Klassenmethode vorbei
class Foo(object):
def method1(self):
print "method1"
def method2(self):
print "method2"
class Fo1(object):
def __init__(self):
self.a = Foo()
def classMethod(self, selection):
self.a.selection()
A = Fo1()
A.classified('method2')
Ich habe diesen Fehler:
--> AttributeError: 'Fo1' object has no attribute 'selection'
Ich will nicht verwenden, dies (scheint mir, mehr Codierung):
def classified(self,selection):
if selection == "method1": self.a.method1()
elif selection == "method2": self.a.method2()
Wie soll ich die Methode, so dass ich übergeben kann der Methodenname als Argument? Danke!
'getattr (self.a, auswahl)()'. –
Es gibt selten einen Grund, dies tatsächlich zu tun. Du kannst eine Referenz direkt an eine Methode übergeben: 'A.classMethod (Foo.method2)' – chepner
du rufst an, wo du zu sein scheinst, um classMethod zu nennen. Das heißt, Sie verwenden classMethod und werden synonym klassifiziert. Wähle einen Namen aus. – dbliss