Python ディクショナリの設定されていないプロパティにアクセスするときKeyError
に、返す代わりにスローする理由と意味は何ですか?None
言語設計にはトレードオフが伴うことを私は知っています。その中には実際的な懸念に基づくものもあれば、主に哲学に基づくものもあります。コンピューター サイエンスの観点から、なぜ Python はこのように設計されたのでしょうか?
質問を構成するためのいくつかのメモ
- 私は主に、これが実際的な決定であったか (つまり、単に を返すだけでなく、エラーから回復するためのより多くのオプションを開発者に与える
None
)、またはその選択が哲学的なものだったか (つまり、「設定されていないプロパティへのアクセスは、Guido の意見、例外的なケース」)。 - Python の
dict.get
関数にはこの機能がありますが、リテラル表記は、プログラムが設定されていない値を例外と見なす場合に最適化されているようです。 - 例外処理は、メイン プログラムとは異なる制御フローを伴うため、推論が困難であると考えられていることは注目に値します。
- Python が例外を発生させる代わりに戻った場合でも、unset と値を別の方法
None
で処理したい場合、プログラムはその値にアクセスする前にキーの存在をチェックできます。None
しかし、例外プログラミング フローにアクセスできないので、何を失う可能性があるのか知りたいです。