Fungsi type() dan isinstance() dalam Python melakukan semakan jenis, tetapi dengan ciri yang berbeza.
Fungsi type() menilai jenis objek dan mengembalikan objek jenis itu sendiri. Ia menyemak jenis objek yang tepat tanpa mengambil kira pewarisan.
Sebaliknya, isinstance() mengesahkan jika objek ialah tika jenis tertentu atau subkelasnya. Ia menyokong warisan, bermakna objek kelas terbitan akan berjaya melepasi semakan isinstance() untuk kelas asas.
Pertimbangkan coretan kod berikut:
# Using type() import types if type(a) is types.DictType: do_something() if type(b) in types.StringTypes: do_something_else()
# Using isinstance() if isinstance(a, dict): do_something() if isinstance(b, str) or isinstance(b, unicode): do_something_else()
Semakan jenis() akan berjaya hanya jika objek adalah contoh jenis yang tepat, manakala isinstance() akan berjaya jika objek ialah tika jenis yang ditentukan (dikt dalam contoh) atau mana-mana subkelasnya.
Secara amnya, isinstance() diutamakan untuk kebanyakan semakan jenis senario kerana ia menyokong pewarisan dengan lancar dan lebih mudah dibaca daripada semakan type(). Untuk semakan tepat yang tidak membimbangkan warisan, type() boleh digunakan.
Atas ialah kandungan terperinci `type()` lwn. `isinstance()` dalam Python: Bila Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!