2016-07-14 4 views
1

最近のコードレビューでは、のinitと他のメソッドのパラメータを読みやすくするために、それらのメソッドを別の行に分けたほうがよいと述べました。私はこれまでこれを見たことがなく、これがこのシナリオを処理するためのpythonicな方法であるかどうか疑問に思っていました。別の行これと同じパターンに続いて、同じ行にメソッドの宣言と長いリストのpythonでの改行のベストプラクティス

def __init__(
     self, 
     name: str = '', 
     address: str = '', 
     license: str = '', 
     job_title: str = '', 
     notes: str = '', 
     gender: Gender = None, 
     status: Status = None 
): 

パラメータ

def __init__(self, name: str = '', address: str = '', license: str = '' 
      job_title: str = '', notes: str = '', 
      gender: Gender = None, status: Status = None): 

パラメータは、それも同じで、長いリストや辞書を壊すために推奨されていました方法。私は他の(任意の正式認識好みがここにあることを考えていない別の行に

リスト値

countries = [ 
    Belgium, 
    Canada, 
    Denmark, 
    Ethiopia, 
    France, 
    Germany, 
    Haiti, 
    Italy, 
    Japan, 
    Korea, 
    Lebanon 
] 

同じライン上のリスト値

countries = [Belgium, Canada, Denmark, Ethiopia, France, Germany,  
      Haiti, Italy, Japan, Korea, Lebanon] 
+0

[* PEP 8 - スタイルガイドfor Pythonコード*](https://www.python.org/dev/peps/pep-0008/)には便利なガイドラインがあります –

+0

フィードバックいただきありがとうございます。 PEPはどちらか一方の方法を指定していません。例では、同じ行にあるパラメータを必要なときだけ破棄することを参照しているようですが、どちらも技術的に有効です。私はちょうど人々が彼らの日々の中で実際に何を使用しているのだろうか? – Nelly

+0

可読性に加えて、保守性も容易です。パラメータを削除するときに行を単に削除するか、追加のパラメータのために新しい行を挿入するだけです。 – alvits

答えて

0

その行はX文字を超えてはいけません - もしあなたがPEP8に従っているならX = 80です。別のプロジェクトは、この領域における基準のワンポイントとして...

を異なる設定(または問わない)を有していてもよい、pylintは私が考える有効なものとして、これらのいずれかを受け入れ...

私の個人的な好みが流れています引数がすべて1行に収まらない場合は、引数を垂直に設定します。

私があなたに与えることができる最高の「一般的な」アドバイスは、周囲のコードと一貫しているようにすることだと思います。あなたが最初の著者でプロジェクトにガイドラインがない場合は、最も快適なものを見つけてください。

+0

これは非常に役に立ちます。ありがとうございました!引数を垂直方向に流すようにコードを修正します。それは視覚的に見るときに慣れていくだけです。 – Nelly

関連する問題