Trong bài viết này, chúng ta sẽ tìm hiểu về hàm isinstance() và type() có sẵn trong Python 3.x hoặc các phiên bản trước đó. Các phương thức này cơ bản được dùng để kiểm tra tham chiếu và bản chất của các thực thể.
Phương thức Isinstance()
Cú pháp
isinstance(object_entity, comparison_equivalent)
Giá trị trả về − True nếu object_entity khớp với comparison_equivalent.
Bây giờ hãy xem isinstance() hoạt động như thế nào?
Ví dụ
class Test:
var = 786
TestInstance = Test()
print(isinstance(TestInstance, Test))
print(isinstance(TestInstance, (list, tuple)))
print(isinstance(TestInstance, (list, tuple, Test)))
Kết quả
True False True
Dòng đầu và dòng ba hiển thị true vì tham chiếu của Test & TestInstance khớp. Trong khi dòng hai hiển thị False vì tham chiếu TestInstance không khớp với tham chiếu list & tuple.
Hãy xem một ví dụ khác để hiểu tốt hơn.
Ví dụ
Test = [1, 2, 3] result = isinstance(Test, list) print(Test, 'list:', result) result = isinstance(Test, dict) print(Test, 'dict:', result) result = isinstance(Test, (dict, list)) print(Test, 'dict or list:', result)
Kết quả
[1, 2, 3] list: True [1, 2, 3] dict: False [1, 2, 3] dict or list: True
Ở đây bất cứ khi nào Test khớp với instance list, True được hiển thị, False ngược lại.
Phương thức Type()
Cú pháp
type(entity)
Giá trị trả về − Kiểu của thực thể được truyền làm đối số.
Bây giờ hãy xem type() hoạt động như thế nào?
Ví dụ
Dictinp = {1: 'Tutorial', 2: 'Point'}
print(type(Dictinp))
Listinp = ['t', 'u', 't']
print(type(Listinp))
Tupleinp = ('Tut', 'orial', 'Point')
print(type(Tupleinp))
Kết quả
<class 'dict'> <class 'list'> <class 'tuple'>
Ở đây đầu ra chứa kiểu được tôn trọng của thực thể được truyền trong lời gọi phương thức. Kiểu này cũng có thể dùng trong so sánh và các câu lệnh điều kiện khác.
Bây giờ hãy xem ví dụ về câu lệnh điều kiện:
Ví dụ
Listinp = ['t', 'u', 't']
Tupleinp = ('Tut', 'orial', 'Point')
if type(Listinp) is not type(Tupleinp):
print("Type mismatch")
else:
print("Type match")
Kết quả
Type Mismatch
Ở đây Type mismatch được hiển thị vì list và tuple là hai kiểu dữ liệu khác nhau.
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu về triển khai phương thức type() & isinstance() trong Python 3.x hoặc các phiên bản trước đó.