Maison > Article > développement back-end > Pourquoi Bool est-il une sous-classe de Int en Python ?
Lors de l'interaction avec memcached via python-memcached, une valeur booléenne est renvoyée sous forme d'entier. Cette observation surprenante a donné lieu à une enquête plus approfondie.
En Python, isinstance(True, int) et issubclass(bool, int) sont tous deux évalués à True, indiquant que bool est une sous-classe. d'int. Cela soulève la question : pourquoi est-ce le cas ?
L'introduction du type bool en Python visait à améliorer la représentation des valeurs de vérité. Cependant, pour garantir la compatibilité ascendante, le type booléen devait se comporter de manière identique à 0 et 1 (les représentations de valeurs de vérité précédentes). Cela s'étendait au-delà de la valeur de vérité pour englober toutes les opérations intégrales.
Pour éviter de perturber le code existant qui reposait sur des valeurs booléennes de manière non idéale, le type bool a été implémenté comme True et False se faisant passer pour 1 et 0, respectivement. Cette décision historique a créé une relation d'héritage inhabituelle entre bool et int.
La relation de sous-classe entre bool et int est une relique de l'évolution linguistique de Python. Il permet une intégration transparente avec le code existant qui traite les valeurs booléennes comme des entiers tout en s'adaptant à l'utilisation moderne du type booléen.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!