2013-07-24 3 views
0

Я пытаюсь придерживаться PEP 8, с ограничением на 78 символов на длину моих линий.Как отформатировать эту строку в соответствии с PEP 8?

У меня есть следующее заявление:

startTime = time.strptime(request.GET.get('st', (dt.datetime.now() - dt.timedelta(days=1)).strftime("%d/%b/%Y:%H:%M:%S")), "%d/%b/%Y:%H:%M:%S") 

Как отформатировать его так, что он прилипает к PEP8 (? Где я должен разбить его на новые линии)

+0

Перекрестный пост [Как отформатировать эту строку в соответствии с PEP 8?] (Http://programmers.stackexchange.com/q/205917) –

+0

См. Комментарии к другому сообщению. Сожалею! –

ответ

1
startTime = time.strptime(
    request.GET.get(
     'st', 
     (
      dt.datetime.now() - dt.timedelta(days=1) 
     ).strftime("%d/%b/%Y:%H:%M:%S") 
    ), 
    "%d/%b/%Y:%H:%M:%S" 
) 

Это одно решение, но для этого вы используете больше переменных. Например:

time_format = "%d/%b/%Y:%H:%M:%S" 
yesterday_date = dt.datetime.now() - dt.timedelta(days=1 

Это сделает код более читаемым

0

разделить его на различные переменные:

a_date = (dt.datetime.now() - dt.timedelta(days=1)).strftime("%d/%b/%Y:%H:%M:%S") 
req = request.GET.get('st', a_date) 
startTime = time.strptime(req, "%d/%b/%Y:%H:%M:%S") 
1

не писать такой чрезмерно запутанный код, в первую очередь:

if 'st' in request.GET: 
    startTime = time.strptime(request.GET['st'], "%d/%b/%Y:%H:%M:%S") 
else: 
    startTime = (dt.datetime.now() - dt.timedelta(days=1)).timetuple() 

Зачем генерировать дефолт по умолчанию для повторной разметки вместо того, чтобы просто идти прямолинейно?

Смежные вопросы