如果我做了以下我可以從一個time_struct
對象轉換爲datetime
對象:下面的代碼如何工作?如何使用struct_time對象?
mydate = datetime.datetime(*time.localtime()[:6])
請問這個代碼工作的? *
和[:6]
是什麼意思?
如果我做了以下我可以從一個time_struct
對象轉換爲datetime
對象:下面的代碼如何工作?如何使用struct_time對象?
mydate = datetime.datetime(*time.localtime()[:6])
請問這個代碼工作的? *
和[:6]
是什麼意思?
*
是argument unpacking,[:6]
是slicing。即從time.localtime()
返回的任何內容(即,time.struct_time
)被切片並且前6個元素被解包並且6個參數被傳遞給datetime.datetime
。
對所有這些話題都有很多關於SO的問題。
*time.localtime()
表示從本地時間返回的tuple
被解包(轉換爲傳遞給datetime的參數)。 [:6]
表示僅使用tuple
的一部分,該運算符返回前六個元素的新的tuple
。
該代碼以時間模塊的形式從一個元組中取出localtime
,並將其傳遞給好的datetime
對象構造函數。在日期時間對象上工作是很好的,他們更好,然後localtime
元組。 localtime
返回代表當地時間的值的tuple
。
參考1:「*」運算符:http://docs.python.org/reference/compound_stmts.html#function -definitions – 2010-03-03 21:32:29
參考2:[:]切片操作:http://docs.python.org/reference/expressions.html#slicings – 2010-03-03 21:33:39
下面是Python參考的鏈接:http://docs.python.org/reference/ – 2010-03-03 21:31:32