funktion dynamisch mit parameter befüllen

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.
roakin
User
Beiträge: 26
Registriert: Montag 30. April 2007, 09:31

funktion dynamisch mit parameter befüllen

Beitragvon roakin » Montag 11. Juni 2007, 15:43

ist es möglich einer funktion eine dynamische anzahl von parametern mitzugeben? ich habe mehrere objekte (deren anzahl variieren kann), die alle einer funktion mitübergeben werden müssten. die einzige idee die ich jetzt habe ist alle objekte wieder ein eine eigene datenstruktur zu schmeißen und diese zu übergeben ... aber trotzdem die frage ob das theoretisch auch anders ginge
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Beitragvon apollo13 » Montag 11. Juni 2007, 15:55

Benutzeravatar
Michael Schneider
User
Beiträge: 566
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Re: funktion dynamisch mit parameter befüllen

Beitragvon Michael Schneider » Montag 11. Juni 2007, 16:14

roakin hat geschrieben:ist es möglich einer funktion eine dynamische anzahl von parametern mitzugeben? ich habe mehrere objekte (deren anzahl variieren kann), die alle einer funktion mitübergeben werden müssten.


Hi Roakin,

klar. Wenn Du weißt, wie Du Parameter in Funktionen entgegennimmst:

Code: Alles auswählen

def f(argument1, swargument1=1, *restargumenttupel, **restswargumentdictionary):
    print argument1, swargument1, restargumenttupel, restswargumentdictionary

... kannst Du dasselbe Prinzip beim Aufruf verwenden:

Code: Alles auswählen

f(argument1, swargument1, *argumenttupel, **swargumentdictionary)

Wichtig ist, dass Du immer erst die Argumente, dann die Schlüsselwortargumente, dann die Argumenttupel (mit *, ohne Leerzeichen) und schließlich das Schlüsselwortargumentdictionary übergibst. Du kannst das auch kombinieren oder Elemente auslassen - solange Du insgesamt genau oder mindestens (wenn restliche Argumente abgefangen) so viele Argumente übergibst, wie Du in der Funktion erwartest.

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...

Wer ist online?

Mitglieder in diesem Forum: Hyperion