如果我做了以下我可以从一个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