Apakah itu dijamin False == 0
dan True == 1
, dengan Python (dengan asumsi bahwa mereka tidak dipindahkan oleh pengguna)? Misalnya, apakah dengan cara apa pun dijamin bahwa kode berikut akan selalu menghasilkan hasil yang sama, apa pun versi Python (baik yang ada dan, kemungkinan, yang akan datang)?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Referensi apa pun ke dokumentasi resmi akan sangat dihargai!
Sunting : Sebagaimana dicatat dalam banyak jawaban, bool
mewarisi dari int
. Pertanyaan karena itu dapat disusun kembali sebagai: "Apakah dokumentasi secara resmi mengatakan bahwa programmer dapat mengandalkan boolean yang diwarisi dari bilangan bulat, dengan nilai 0
dan1
?". Pertanyaan ini relevan untuk menulis kode yang kuat yang tidak akan gagal karena detail implementasi!
sum(bool_list)
. Kalau tidak, Anda harus menulis sum(1 for x bool_list if x)
.
bool_list.count(True)
lebih eksplisit; itu juga sekitar 3 kali lebih cepat ... :)