ホームページ >バックエンド開発 >Python チュートリアル >Python で副作用にリスト内包表記を使用することは悪い習慣とみなされますか?
副作用に対するリスト内包表記の使用: 非 Python の実践
Python のリスト内包表記は、既存の反復可能オブジェクトに基づいて新しいリストを作成するための強力なツールです。これらは簡潔で表現力豊かな構文を提供しますが、副作用のためだけにリスト内包表記を使用することは反 Python 的であると考えられます。
問題
次のような副作用を実行する関数を考えてみましょう。画面への印刷、GUI の更新、ファイルへの書き込みなど。これは値を返しますが、通常、その値は重要ではありません。
def fun_with_side_effects(x): ...side effects... return y
次のように、副作用のためにリスト内包表記を使用してこの関数を呼び出したくなるかもしれません。
[fun_with_side_effects(x) for x in y if (...conditions...)]
結果のリストは変数に割り当てられないことに注意してください。
The Anti-Pythonic自然
この方法でリスト内包表記を使用することは、いくつかの理由から強く推奨されません:
推奨されるアプローチ
推奨されるアプローチは、for ループを使用して反復可能オブジェクトを反復処理し、必要な場合にのみ副作用を引き起こす関数:
for x in y: if (...conditions...): fun_with_side_effects(x)
このアプローチはより効率的で慣用的であり、より少ないものです。混乱する。これは、関数が主に副作用のために呼び出されていることを明確に示しています。
以上がPython で副作用にリスト内包表記を使用することは悪い習慣とみなされますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。