Seite 1 von 1

array[] -> *argv

Verfasst: Donnerstag 19. Juli 2007, 16:59
von Zack
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

Re: array[] -> *argv

Verfasst: Donnerstag 19. Juli 2007, 17:04
von EyDu
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)

Verfasst: Donnerstag 19. Juli 2007, 17:12
von Zack
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