En Python, il est courant d'associer les valeurs booléennes Faux et Vrai aux entiers 0 et 1. Cependant, cette correspondance est-elle garantie par la langue, ou s'agit-il simplement d'un détail d'implémentation qui pourrait changer à l'avenir versions ?
Dans Python 2.x, True et False ne sont pas explicitement définis comme des mots-clés et leurs valeurs peuvent être réaffectées. Cependant, même dans ce cas, les comparaisons renvoient toujours les valeurs vraies et fausses correctes.
Dans Python 3.x, True et False sont officiellement définis comme des mots-clés. Cela garantit que leurs valeurs seront toujours égales à 1 et 0, respectivement.
À la base de l'équivalence entre les booléens et les entiers en Python se trouve le fait que bool hérite de int. Cette relation d'héritage garantit que les booléens peuvent être utilisés dans des contextes attendant des entiers, tels que l'indexation de listes.
La documentation Python indique explicitement que les booléens héritent d'entiers :
object | int | bool
La documentation précise également que les booléens se comportent comme des entiers 0 et 1 dans presque tous les contextes, sauf lorsqu'ils sont convertis en chaînes.
Sur la base de la documentation et de l'implémentation actuelle de Python, il est prudent de supposer que False et True seront toujours égaux à 0 et 1, respectivement. Cependant, si Python 4 introduit des changements significatifs dans la hiérarchie d'héritage des entiers, cette hypothèse pourrait ne plus être valable.
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!