Ложь == 0 и Верна == 1 деталь реализации, или она гарантируется языком?

Этому гарантируют это False == 0 и True == 1, в Python (предполагающий, что им не повторно присваивает пользователь)? Например, всегда гарантируется, что следующий код будет всегда приводить к тем же результатам, безотносительно версии Python (и существующий и, вероятно, будущие)?

0 == False  # True
1 == True   # True
['zero', 'one'][False]  # is 'zero'

Любая ссылка на официальную документацию очень ценилась бы!

Править: Как отмечено во многих ответах, bool наследовался int. Вопрос может поэтому быть переделан как: "Делает документацию, официально говорят, что программисты могут полагаться на булевские переменные, наследовавшиеся целым числам со значениями 0 и 1?". Этот вопрос важен для написания устойчивого кода, который не перестанет работать из-за деталей реализации!

230
задан Georgy 5 November 2019 в 02:53
поделиться