2016-10-24 3 views
1

長い引数リストを持つ関数を呼び出すときは、閉じ括弧を別の行に入れる必要がありますか?例:長い引数リストを持つ関数を呼び出すときの最後の括弧

import module1.module2 

def main(): 

    # alternative 1, closing parenthesis on separate line 
    x=3 
    y=4 
    my_result_name_1, my_result_name_2 = module1.module2.function3(
     argument_name1, argument_name2, keyword_argument=(x,y) 
    ) 
    print(my_result_name_1) 

    # alternative 2, closing parenthesis on same line as last argument 
    x=3 
    y=4 
    my_result_name_1, my_result_name_2 = module1.module2.function3(
     argument_name1, argument_name2, keyword_argument=(x,y)) 
    print(my_result_name_1) 

    return 

if __name__ == '__main__': 
    main() 

PEP8の例は、少し混乱します。まず、彼らはこの例があります:

# Hanging indents should add a level. 
foo = long_function_name(
    var_one, var_two, 
    var_three, var_four) 

はその後、彼らはこれを持っている:

スタイルが好まれる
my_list = [ 
    1, 2, 3, 
    4, 5, 6, 
] 

+0

関連性:http://stackoverflow.com/questions/23985688/indentation-of-closing-parenthesis –

+0

私はかなり両方のスタイルが受け入れられると確信しています。私は同じ行の括弧を長い行で見るほうがいいと思うのに対し、別の行では短い行ではよりきれいです。 – alexpeits

+1

私は行こうと思っています:1)長いかどうかにかかわらず、1行につき1つの引数が常に独立しています。 2)それ自身の行で括弧を閉じます。どうして?このように、単一の引数を変更したり、単一の引数を追加/削除したりするたびに、この行だけが変更されるため、VSCの 'diff'を理解するのは非常に簡単です。 – Bakuriu

答えて

1

個人的には、2番目の追加回線が必要な場合は、

foo = long_function_name(var_one, var_two, 
         var_three, var_for) 

しかし、私はより多くのその1つの追加のラインを持っているつもりならば、私は例えば、別々の行にコンテンツを保つ:私は、例えば、インライン開閉ブラケットを置く

my_list = [ 
    1, 2, 3, 
    4, 5, 6, 
    7, 8, 9 
] 

本当にあなたがそれをやりたいと思うかはあなた次第です。私の場合、最も重要なことは読みやすさと一貫性です。

+0

提案していただきありがとうございます! PEP8によると:* "1行目の引数は、垂直方向のアラインメントを使用しない場合は禁止されています" *。最初の例はPEP8によれば推奨されていませんか? –

+0

うーん、少し曖昧です。正確に垂直に整列させる必要があるのは何ですか?どのようにインライン引数を垂直に揃えますか? –

+1

あなたの質問を編集して、私が声明をどのように解釈するのかを示してください。同意し​​ないと編集をロールバックしてください:) –

関連する問題