array[] -> *argv

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
Zack
User
Beiträge: 47
Registriert: Dienstag 24. April 2007, 11:19

Hi, bin hier auf ein kleines Problem gestoßen und hab mich gefragt, ob es dafür überhaupt eine Lösung für gibt. Sicher geht es auch etwas umständlicher, aber aus Interesse frag ich einfach mal nach.

Folgendes hab ich versucht:

Code: Alles auswählen

import time, datetime
def timetoms(*argv):
    return time.mktime(datetime.datetime(*argv).timetuple())

print timetoms(2007,7,19,16,42,6) #klappt super aber:

#----------------------------
mytime = (2007,7,19,16,42,6)
print timetoms(mytime)            #führt immer zu einem argumentenfehler, ebenso:

mytime = [2007,7,19,16,42,6]
#----------------------------
So müsste ich nicht den ganzen Term auseinander nehmen.
Gruss
Zack
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

In Zeile 9 übergibst du ein Tupel an die Funktion, welches natürlich nur als ein einziges Argument aufgefasst wird. Füge dazu zwischen Zeile 2 und 3 mal ein "print argv" ein, um zu sehen was ich meine.

Was du in Zeile 9 eigentlich machen willst, ist alle Elemente des Tupels als einzelne Parameter zu übergeben. Dieses kannst du mit tuple-unpacking erreichen:

Code: Alles auswählen

mytime = (2007,7,19,16,42,6)
print timetoms(*mytime)
Zack
User
Beiträge: 47
Registriert: Dienstag 24. April 2007, 11:19

Super, genau das, was ich gesucht habe.
Ich hatte die Ausgabe auch schon vor Augen, ich wusste nur nicht wie ich die in ein verträgliches Format bekomme. Aber so klappts prima
Vielen Dank EyDu!

Gruss
Zack
Antworten