Rumah >pembangunan bahagian belakang >Tutorial Python >Semakan Jenis Python: Bila Untuk Menggunakan `type()` vs. `isinstance()`?
Memahami Perbezaan Antara type() dan isinstance()
Dalam Python, type() dan isinstance() ialah dua fungsi yang digunakan untuk semakan jenis. Walau bagaimanapun, mereka mempunyai ciri tersendiri yang memberi kesan kepada senario penggunaannya.
Pemeriksaan Jenis dengan type()
type() mengembalikan jenis objek, kelas di mana objek itu tergolong. Dengan membandingkan jenis yang dikembalikan dengan jenis yang diketahui, anda boleh menilai sama ada objek adalah daripada jenis khusus itu:
import types if type(a) is types.DictType: do_something()
Kod ini menyemak sama ada objek a ialah jenis kamus. Jika ya, fungsi do_something() dilaksanakan.
Taip Semakan dengan isinstance()
isinstance() menyemak sama ada objek contoh kelas atau subkelas tertentu. Tidak seperti type(), ia mengambil kira hierarki warisan:
if isinstance(a, dict): do_something()
Di sini, isinstance() menyemak sama ada objek a ialah kamus atau contoh mana-mana kelas yang mewarisi daripada dict . Jika ya, fungsi do_something() dipanggil.
Perbezaan Utama
class Cat(Animal): pass if isinstance(pet, Cat): # True do_something_catty()
type() akan mengembalikan Haiwan untuk haiwan kesayangan, tidak kira sama ada ia kucing atau subkelas lain.
Amalan Terbaik
Secara amnya, isinstance() diutamakan apabila:
type() berguna apabila:
Atas ialah kandungan terperinci Semakan Jenis Python: Bila Untuk Menggunakan `type()` vs. `isinstance()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!