ホームページ > バックエンド開発 > Python チュートリアル > Python のリスト変更メソッドが「None」を返すのはなぜですか?

Python のリスト変更メソッドが「None」を返すのはなぜですか?

Susan Sarandon
リリース: 2024-12-20 18:29:13
オリジナル
838 人が閲覧しました

Why Do Python's List Modification Methods Return `None`?

Python のリスト メソッドがリストではなく None を返すのはなぜですか?

追加、並べ替え、拡張、削除、クリア、反転などのリスト メソッドを変更すると、通常はむしろ None が返されます。変更されたリスト自体よりも。この設計上の決定は、オブジェクトをその場で変更する関数は None を返す必要があるという Python の包括的な原則に根ざしています。

理論的根拠

Python アーキテクトの Guido van Rossum 氏によると、 、この選択は、新しいオブジェクトが作成されていないことを強調するために役立ちます。変更されたリストを返さないことで、混乱を招き、読みやすさを妨げる可能性がある

x.compress().chop(y).sort(z)
ログイン後にコピー

などの連鎖副作用の使用を抑制します。代わりに、Python はより明示的な形式を好みます。

x.compress()
x.chop(y)
x.sort(z)
ログイン後にコピー

この分離により、各メソッドが同じオブジェクトに対して動作していることが明確になります。

操作の連鎖

側の連鎖中-effect 呼び出しは推奨されません。Python では、文字列処理などの新しい値を返す操作で許可されます。操作:

y = x.rstrip("\n").split(":").lower()
ログイン後にコピー

考慮事項

この設計上の決定には欠点があります。これにより、次のようなリスト処理の直感的な「連鎖」が防止されます。

mylist.reverse().append('a string')[:someLimit]
ログイン後にコピー

リスト内包表記やその他のデータ構造などの代替手段は、「副作用が返されない」という慣例を破ることなく、同様の機能を提供できます。

以上がPython のリスト変更メソッドが「None」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート