ホームページ >バックエンド開発 >Python チュートリアル >Python は「False」と「True」が常に 0 と 1 に等しいことを保証しますか?

Python は「False」と「True」が常に 0 と 1 に等しいことを保証しますか?

DDD
DDDオリジナル
2024-12-13 20:25:11936ブラウズ

Does Python Guarantee that `False` and `True` Always Equal 0 and 1?

Python では False と True は 0 と 1 に等しいことが保証されていますか?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。