追加、並べ替え、拡張、削除、クリア、反転などのメソッドで Python リストを操作すると、奇妙な動作が発生します。 : これらの操作はリストをその場で変更し、更新されたリストの代わりに None を返します。
この設計の選択は、次の基本原則によって推進されました。 Python: オブジェクトをインプレースで変更する関数は None を返す必要があります。これは、そのような操作中に新しいオブジェクトが作成されないという事実を強調するのに役立ちます。
Python の作成者である Guido van Rossum が、Python-Dev メーリング リストでその理論的根拠を詳しく説明しています。彼は、コードの意図に対する読者の理解を曖昧にする可能性があるため、簡潔な方法で単一のオブジェクトに副作用を連鎖させることに反対しています。たとえば、次のコードを考えてみましょう:
x.compress().chop(y).sort(z)
これは次と同等です:
x.compress() x.chop(y) x.sort(z)
Van Rossum は、各演算が適用されていることを明示的に示しているため、2 番目の形式の方が明確であると主張しています。一方、チェーンの使用は、文字列処理など、新しい値を返す操作のために予約されています。操作:
pstat などの特定のライブラリ モジュールは副作用呼び出しの連鎖を奨励する可能性がありますが、Van Rossum 氏は、標準ライブラリへの新規追加ではこのような行為は推奨されないと主張しています。y = x.rstrip("\n").split(":").lower()
以上がPython のリスト変更メソッドが「None」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。