False == 0 e True == 1 no Python é um detalhe de implementação ou é garantido pela linguagem?
É garantido queFalse == 0
eTrue == 1
, em Python (assumindo que eles não foram reatribuídos pelo usuário)? Por exemplo, é de alguma forma garantido que o código a seguir sempre produzirá os mesmos resultados, independentemente da versão do Python (existente e, provavelmente, futura)?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Qualquer referência à documentação oficial seria muito apreciada!
Editar: Como observado em muitas respostas,bool
herda deint
. Portanto, a questão pode ser reformulada da seguinte forma: "A documentação diz oficialmente que os programadores podem confiar nos booleanos herdados de números inteiros,com os valores0
e1
? ". Esta questão é relevante para escrever código robusto que não falhará devido aos detalhes da implementação!