追加、並べ替え、拡張、削除、クリア、反転などのリスト メソッドを変更すると、通常はむしろ 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 サイトの他の関連記事を参照してください。