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

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
Benutzeravatar
Michael Schneider
User
Beiträge: 567
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

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 ...
Antworten