Apabila berinteraksi dengan memcached melalui python-memcached, nilai bool dikembalikan sebagai integer. Pemerhatian yang mengejutkan ini mendorong penyiasatan lanjut.
Dalam Python, isinstance(True, int) dan issubclass(bool, int) kedua-duanya menilai kepada True, menunjukkan bahawa bool ialah subkelas daripada int. Ini menimbulkan persoalan: mengapakah ini berlaku?
Pengenalan jenis bool dalam Python bertujuan untuk meningkatkan perwakilan nilai kebenaran. Walau bagaimanapun, untuk memastikan keserasian ke belakang, jenis bool perlu berkelakuan sama dengan 0 dan 1 (perwakilan nilai kebenaran sebelumnya). Ini melangkaui nilai kebenaran untuk merangkumi semua operasi integral.
Untuk mengelakkan gangguan kod sedia ada yang bergantung pada nilai boolean dengan cara yang tidak ideal, jenis bool telah dilaksanakan sebagai Benar dan Palsu menyamar sebagai 1 dan 0, masing-masing. Keputusan sejarah ini mewujudkan hubungan warisan luar biasa antara bool dan int.
Hubungan subkelas antara bool dan int ialah peninggalan evolusi linguistik Python. Ia membolehkan penyepaduan lancar dengan kod warisan yang menganggap nilai boolean sebagai integer sambil menampung penggunaan moden jenis bool.
Atas ialah kandungan terperinci Mengapa Bool merupakan Subkelas Int dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!