Python では、False と True のブール値を整数 0 に関連付けるのが一般的です1. ただし、この対応は言語によって保証されているのでしょうか、それとも将来変更される可能性がある実装の詳細にすぎないのでしょうか。
Python 2.x では、True と False はキーワードとして明示的に定義されておらず、それらの値は再割り当てできます。ただし、この場合でも、比較では正しい True 値と False 値が返されます。
Python 3.x では、True と False はキーワードとして正式に定義されています。これにより、それらの値が常にそれぞれ 1 と 0 に等しいことが保証されます。
Python におけるブール値と整数の等価性の根底にあるのは、bool が int から継承するという事実です。この継承関係により、リストのインデックス作成など、整数を期待するコンテキストでブール値を使用できることが保証されます。
Python のドキュメントでは、ブール値が整数から継承することが明示的に記載されています。
object | int | bool
ドキュメントでは、ブール値が整数 0 と 1 のように動作することも明確にしています。文字列に変換される場合を除いて、ほぼすべてのコンテキスト。
ドキュメントと Python の現在の実装に基づくと、False と True は常に 0 に等しく、それぞれ1。ただし、Python 4 で整数の継承階層に大幅な変更が導入された場合、この仮定は無効になる可能性があります。
以上がPython は「False」と「True」が常に 0 と 1 に等しいことを保証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。