2015-03-11 2 views
-1

Я пытаюсь создать временную переменную, которая фактически сохраняет текущее время и выводит время в этом экземпляре. Воспроизводимая код также входит:Как создать временную переменную в Python?

import time 
from datetime import datetime 
t = datetime.now().strftime('%Y-%m-%d %H:%M:%S') 
for i in range(5): 
    time.sleep(2) 
    print t 

Выход

2015-03-11 11:28:53 
2015-03-11 11:28:53 
2015-03-11 11:28:53 
2015-03-11 11:28:53 
2015-03-11 11:28:53 

Желаемая выход

2015-03-11 11:28:53 
2015-03-11 11:28:55 
2015-03-11 11:28:57 
2015-03-11 11:28:59 
2015-03-11 11:29:01 

Любой простой способ сделать это вместо того, чтобы вставлять команды

datetime.now().strftime('%Y-%m-%d %H:%M:%S') 

несколько раз в коде.

+1

Почему бы * строка * объект обновить себя в цикле? Почему бы просто не использовать 'print datetime.now(). Strftime ('% Y-% m-% d% H:% M:% S')' в самом цикле? –

+0

Если вы хотите зафиксировать текущее время в определенные моменты, вы будете * иметь * для вызова 'datetime.now()' для измерения текущего времени. –

+0

Я должен использовать его в нескольких местах, что делает код очень грязным. –

ответ

0

Перемещение t=... линии в петлю for и/или сконденсировать его в print заявление и/или обернуть его в отдельную функцию затем вызвать, что в цикле for.

Последний способ - это лучший способ сделать это, если вы собираетесь использовать его в других местах кода. Это означает, что вам нужно только изменить форматирование или вызов времени в одном месте в коде.

2

Вы не можете избежать необходимости звонить datetime.now(), если вам нужно зафиксировать текущее время в разные моменты времени.

Поместите вызов в функции, если вы чувствуете, что это слишком многословным повторять:

def current_time(): 
    return datetime.now().strftime('%Y-%m-%d %H:%M:%S') 

затем называют это:

for i in range(5): 
    time.sleep(2) 
    print current_time() 
Смежные вопросы