Seite 1 von 1

tuple als parameter liste

Verfasst: Dienstag 30. Oktober 2007, 15:49
von Jona
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))

Verfasst: Dienstag 30. Oktober 2007, 15:55
von Zap
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))

Verfasst: Dienstag 30. Oktober 2007, 16:27
von Jona
ahhh schick :)

danke :)

Verfasst: Dienstag 30. Oktober 2007, 18:49
von Leonidas
Wenn man das auf Old-School-Weise machen will, kann man auch `apply()` verwenden.