generischer Methoden-Aufruf mit Parameter-Tupel

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
Hiasl

Donnerstag 8. September 2005, 11:08

Hallo,

gibt es eine Möglihckeit generisch Methoden/Funktionen aufzurufen und die Parameter als Tupel zu übergeben?

Bsp:
...
def a( p1, p2, p3)

par = (1, 2, 3)
*.call(a, par) #<- der Aufruf

Mir ist nicht geholfen, Methoden bzw. Funktionen zu definieren, mit eine Tupel als genau einem Parameter.

Gruß
Matthias
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Donnerstag 8. September 2005, 11:11

Hi!

Bin mir nicht sicher ob ich Dich richtig verstehe, meinst Du sowas?

Code: Alles auswählen

>>> def a(p1,p2,p3):
...     print p1, p2, p3
...
>>> par = (1,2,3)
>>> a(*par)
1 2 3
Gruß, mawe
Hiasl

Donnerstag 8. September 2005, 13:30

Ja genau das brauche ich :)

Vielen Dank!
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Donnerstag 8. September 2005, 17:07

Dafür ist das Sternchen gut? Ich hab das aber auch schon mit zwei Sternchen gesehen. Was ist das denn?
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 8. September 2005, 17:14

N317V hat geschrieben:Dafür ist das Sternchen gut? Ich hab das aber auch schon mit zwei Sternchen gesehen. Was ist das denn?
Einfach mal ausprobieren:

Code: Alles auswählen

In [29]: def gen(*args, **kwargs):
   ....:     print args
   ....:     print kwargs
   ....:

In [30]: gen('abc', 'def', foo='bar', wiki='moin')
('abc', 'def')
{'wiki': 'moin', 'foo': 'bar'}
Ich hoffe dass du jetzt Informiert bist. kwargs (das heißt meist so, ist Konvention für Keyword-Args) ist ein Dict mit den Argumenten die als Keyword angegeben wurden.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Gast

Donnerstag 8. September 2005, 17:20

Erstmal Danke! Aber, wie hätte ich das denn ausprobieren sollen? Macht ja nur Sinn, wenn man weiß, wie man das dann aufruft, was man nur weiß, wenn man weiß wie es funktioniert. Ein Teufelskreis! :-)

Beim Aufruf übergibt man so dann ein dict? Halt! Stop! Das kann ich ausprobieren. :-)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 8. September 2005, 18:17

Anonymous hat geschrieben:Beim Aufruf übergibt man so dann ein dict? Halt! Stop! Das kann ich ausprobieren. :-)
Nein, das habe ich doch schon gemacht: eich habe die keywort-Argumente foo und wiki angegeben und kwargs ist ein Hash in dem die Argumente als Schlüsses und die Werte als Werte der Schlüssel gespeichert sind.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten