私は非常に長いifステートメントをPythonで持っています。いくつかの行に分割する最良の方法は何ですか?最高の私は、最も読みやすい/共通の意味です。非常に長いPythonのステートメント
答えて
PEP8によれば、長い行はかっこで囲む必要があります。括弧を使用すると、バックスラッシュを使用せずに行を分割できます。また、ブール演算子の後に改行を置くようにしてください。例えば
:ここ
if (abcdefghijklmnopqrstuvwxyz > some_other_long_identifier and
here_is_another_long_identifier != and_finally_another_long_name):
# ... your code here ...
pass
'E129'をオフにするか、Andrew Clarkのソリューション(http://stackoverflow.com/a/5253419/981933)を使用してください。そうしないとPEP8がエラーを投げます。 https://github.com/PyCQA/pep8/issues/126とhttps://github.com/PyCQA/pep8/issues/386を参照してください。 –
'E129'をオフにしないでください。単にそれに従ってください。それなしで物を読むのは難しいです。 –
まあ、私は 'E129'に従う方法を知らない。私が試したことでうれしいことではありません。 – user2061057
は、行の長さを制限するにPEP 8から直接の例である:
class Rectangle(Blob):
def __init__(self, width, height,
color='black', emphasis=None, highlight=0):
if (width == 0 and height == 0 and
color == 'red' and emphasis == 'strong' or
highlight > 100):
raise ValueError("sorry, you lose")
if width == 0 and height == 0 and (color == 'red' or
emphasis is None):
raise ValueError("I don't think so -- values are %s, %s" %
(width, height))
Blob.__init__(self, width, height,
color, emphasis, highlight)
しかし、これは、pep8 lintチェッカーを使用して、次の論理行と同じインデントで視覚的にインデントされた行E129を引き起こします。 – ArtOfWarfare
@ArtOfWarfareインデントが台無しになった。修正が保留中の修正、または[PEP8](http://legacy.python.org/dev/peps/pep-0008/)の例を直接参照してください。 – altendky
複数のパラメータを1行に入れても読みやすさは損なわれますが、残りの部分は2行目に分割して置いてください。長すぎない場合は、それぞれを破ったり、1行にまとめたりしてください。 「高さは何のために特別なの?後に休憩があるの?」 「なぜ、「幅」や「色」の後に壊れないの?」この種の質問は、厳密な規則に従わない破りでのみ発生します。 – Zelphir
- 1. この非常に長いJqueryステートメントを計算する
- 2. は非常に長い文字列に
- 3. wordwrap非常に長い文字列
- 4. PHP - (非常に)長いロードwith fopen
- 5. DirectoryInfo、FileInfo、非常に長いパス
- 6. Java Infinite非常に長いループ
- 7. 非常に長い要求時間VS2010
- 8. Javascriptと非常に長い文字列
- 9. 無効なメソッド非常に長いテンプレート/ビューのコード長
- 10. SQlite(sqlite3 python)に非常に長い文字列を保存するには?
- 11. Crystal Reports - 非常に大規模なデータベース、非常に長い処理時間
- 12. Javaの非常に冗長なクラスライブラリ
- 13. Javaの長いテキストファイルの読み込みが非常に遅い
- 14. 非常に短い文書の長い質問
- 15. "クエリ終了"ステップが非常にランダムな時間に非常に長く
- 16. 記事用の非常に長いテキスト用のSqlalchemyタイプ
- 17. jsTree - レンダリングの最適化| 2000ノードの非常に長いレンダリング
- 18. Android用Facebook SDK - 最初のログインは非常に遅い/非常に長い時間がかかります
- 19. サービスファクトリ:非常に長いパス/ファイル名の問題
- 20. 非常に長いデシマルの算術演算
- 21. 非常に長い実行中のレーキタスクを扱う
- 22. ゲームセンターのマルチプレイヤー、非常に長い接続タイムアウト
- 23. 非常に長い領域でレンダリングする複数のオブジェクト、キャンバス?
- 24. jQueryのFLOT:非常に長い軸ラベルとバー図
- 25. テーブルで非常に長い文字列を壊すには?
- 26. 非常に長いCSVデータ用に最適なMySQLタイプ
- 27. NSManagedContextには非常に長い時間がかかります
- 28. Pythonの非常に大きなブールリスト
- 29. C++の非常に長い型の場合、大きな計算のために自分の非常に長い型を作成できますか?
- 30. Cプログラミングで非常に長い数値を計算する
は、コードをしてください表示! –