Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Hàm type() và isinstance() trong Python

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 đó.