Seite 1 von 1

generischer Methoden-Aufruf mit Parameter-Tupel

Verfasst: Donnerstag 8. September 2005, 11:08
von Hiasl
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

Verfasst: Donnerstag 8. September 2005, 11:11
von mawe
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

Verfasst: Donnerstag 8. September 2005, 13:30
von Hiasl
Ja genau das brauche ich :)

Vielen Dank!

Verfasst: Donnerstag 8. September 2005, 17:07
von N317V
Dafür ist das Sternchen gut? Ich hab das aber auch schon mit zwei Sternchen gesehen. Was ist das denn?

Verfasst: Donnerstag 8. September 2005, 17:14
von Leonidas
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.

Verfasst: Donnerstag 8. September 2005, 17:20
von Gast
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. :-)

Verfasst: Donnerstag 8. September 2005, 18:17
von Leonidas
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.