tuple als parameter liste

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

Dienstag 30. Oktober 2007, 15:49

ich möchte einer klasse einen funktionsnamen und eine parameterlsite als tupel übergeben. die entsprechende funktion soll dann mit den parametern ausgeführt werden.
an die funktion komme ich mit getattr, aber wie übergeben ich am besten die parameter?

Code: Alles auswählen

def rpc(funcname, params):
  f = getattr(self, funcname)
  f( ??? ) # wie krieg ich jetzt hier die parameter rein?

rpc("add", (1,2))
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Dienstag 30. Oktober 2007, 15:55

Hi Jona

Mit dem Sternoperator zum entpacken:

Code: Alles auswählen

def rpc(funcname, params):
  f = getattr(self, funcname)
  f(*params) 

rpc("add", (1,2))
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

Dienstag 30. Oktober 2007, 16:27

ahhh schick :)

danke :)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 30. Oktober 2007, 18:49

Wenn man das auf Old-School-Weise machen will, kann man auch `apply()` verwenden.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten