Как работает следующий код? Как работать с объектами struct_time? - PullRequest
0 голосов
/ 04 марта 2010

Если я сделаю следующее, я могу преобразовать объект time_struct в объект datetime:

mydate = datetime.datetime(*time.localtime()[:6])

Как работает этот код? Что означают * и [:6]?

Ответы [ 2 ]

4 голосов
/ 04 марта 2010

* - аргумент распаковки , [:6] - нарезка . То есть все, что возвращается из time.localtime() (т.е. time.struct_time), разрезается, и первые 6 элементов распаковываются, а 6 аргументов передаются в datetime.datetime.

Есть много вопросов по всем этим темам.

3 голосов
/ 04 марта 2010

*time.localtime() означает, что tuple, возвращаемое из локального времени, распаковывается (превращается в аргументы, передаваемые в datetime). [:6] означает, что используется только срез tuple, этот оператор возвращает новые tuple первых шести элементов.

Этот код берет localtime из временного модуля в виде кортежа и передает его в хороший datetime конструктор объекта. Хорошо работать с объектами datetime, они намного лучше, чем localtime кортежей. localtime возвращает tuple со значениями, представляющими местное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...