0

PEP 8に準拠しようとしていますが、行の長さは 78 文字に制限されています。

私は次の声明を持っています:

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に準拠するようにフォーマットするにはどうすればよいですか(どこで新しい行に分割する必要がありますか?)

4

3 に答える 3

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"
)

これは 1 つの解決策ですが、これにはさらに変数を使用します。例えば:

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

これにより、コードが読みやすくなります

于 2013-07-24T10:29:29.777 に答える
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()

すぐにそこに行くのではなく、タイムタプルに再び解析されるデフォルトを生成するのはなぜですか?

于 2013-07-24T10:31:43.237 に答える
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")
于 2013-07-24T10:30:05.777 に答える