ホームページ >バックエンド開発 >Python チュートリアル >Bool が Python の Int のサブクラスであるのはなぜですか?
python-memcached を通じて memcached と対話すると、bool 値が整数として返されます。この驚くべき観察結果により、さらなる調査が行われました。
Python では、isinstance(True, int) と issubclass(bool, int) は両方とも True と評価され、bool がサブクラスであることを示します。 intの。これは疑問を引き起こします: なぜこれが当てはまるのでしょうか?
Python での bool 型の導入は、真理値の表現を強化することを目的としていました。ただし、下位互換性を確保するために、bool 型は 0 および 1 (以前の真理値表現) と同じように動作する必要がありました。これは、真理値を超えてすべての整数演算を包含するように拡張されました。
非理想的な方法でブール値に依存する既存のコードの中断を避けるために、bool 型は True として実装されました。および False は、それぞれ 1 と 0 に見せかけます。この歴史的な決定により、bool と int の間に異常な継承関係が作成されました。
bool と int の間のサブクラス関係は、Python の言語進化の名残です。これにより、ブール型の最新の使用法に対応しながら、ブール値を整数として扱う従来のコードとのシームレスな統合が可能になります。
以上がBool が Python の Int のサブクラスであるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。