web-dev-qa-db-ja.com

Python関数の引数リストのフォーマット

次のコードをPEP8に従ってフォーマットする最良の方法は何ですか:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer,
    token=token, verifier=verifier, http_url=ACCESS_TOKEN_URL)

問題は、最初の行に複数のパラメーターを配置すると、その行が79文字を超えることです。 4つのスペースのインデントがある個別の行に各パラメーターを配置すると、非常に見苦しくなります。

oauth_request = oauth.OAuthRequest.from_consumer_and_token(
    consumer,
    token=token,
    verifier=verifier,
    http_url=ACCESS_TOKEN_URL)

私が思いついた最良のオプションは、より良い区別のために追加のインデントを追加することです:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(
                        consumer,
                        token=token,
                        verifier=verifier,
                        http_url=ACCESS_TOKEN_URL)

最初の行で長い呼び出しがあり、1行に収まらないいくつかのパラメーターを持つメソッドに使用するための一般的なルールを作成しようとしています。

43
sam

documentation を読むと、2と3の両方が受け入れられることが示唆されますが、2が好ましいようです(例では2 vs.ここでは、スタイルの仕様が非常に具体的であるとは思わない)。 1が出ています(行Arguments on first line forbidden when not using vertical alignment

31
cwallenpoole