Dalam Python, adalah amalan biasa untuk mengaitkan nilai False dan True Boolean dengan integer 0 dan 1. Walau bagaimanapun, adakah surat-menyurat ini dijamin oleh bahasa, atau adakah ia hanya butiran pelaksanaan yang boleh berubah pada masa hadapan versi?
Dalam Python 2.x, True dan False tidak ditakrifkan secara eksplisit sebagai kata kunci dan nilainya boleh ditetapkan semula. Walau bagaimanapun, walaupun dalam kes ini, perbandingan masih mengembalikan nilai Benar dan Salah yang betul.
Dalam Python 3.x, Benar dan Salah secara rasmi ditakrifkan sebagai kata kunci. Ini menjamin bahawa nilainya akan sentiasa sama dengan 1 dan 0, masing-masing.
Mendasari kesetaraan antara Boolean dan integer dalam Python ialah hakikat bahawa bool mewarisi daripada int. Hubungan warisan ini memastikan bahawa Booleans boleh digunakan dalam konteks yang mengharapkan integer, seperti pengindeksan senarai.
Dokumentasi Python secara eksplisit menyatakan bahawa Booleans mewarisi daripada integer:
object | int | bool
Dokumentasi juga menjelaskan bahawa Boolean berkelakuan seperti itu integer 0 dan 1 dalam hampir semua konteks, kecuali apabila ditukar kepada rentetan.
Berdasarkan dokumentasi dan pelaksanaan semasa Python, adalah selamat untuk mengandaikan bahawa False dan True akan sentiasa adalah sama dengan 0 dan 1, masing-masing. Walau bagaimanapun, jika Python 4 memperkenalkan perubahan ketara pada hierarki warisan integer, andaian ini mungkin tidak lagi sah.
Atas ialah kandungan terperinci Adakah Python Menjamin bahawa `False` dan `True` Sentiasa Sama 0 dan 1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!