Sự bằng: nhận dạng object và tương ứng cấu trúc Python
Thỉnh thoảng, các lập trình viên cần xem liệu 2 biến có tham chiếu đến cùng chính xác object hay đến các objects
khác nhau. Ví dụ, bạn có thể muốn quyết định liệu một biến có là một alias cho cái khác. Toán tử == trả về True nếu
các biến là các aliases cho cùng object. Không may mắn là, == cũng trả về True nếu các nội dung của 2 objects
khác nhau là giống nhau. Quan hệ đầu tiên được gọi là nhận dạng object, trong khi quan hệ thứ hai được gọi là
tương ứng cấu trúc. Toán tử == không có cách nào phân biệt giữa 2 dạng quan hệ này.
Toán tử is Python có thể được sử dụng để test cho object identity. Nó trả về True nếu 2 toán hạng tham chiếu đến
chính xác cùng object, và nó trả về False nếu các toán hạng tham chiếu đến các objects khác biệt (thậm chí nếu
chúng là tương ứng cấu trúc). Phiên làm việc tiếp theo thể hiện sự khác nhau giữa == và is, và ảnh dưới mô tả
các objects đang bàn luận.
>> first = [20, 30, 40]
>>> second = first
>>> third = list(first) # Or first[:]
>>> first == second
True
>>> first == third
True
>>> first is second
True
>>> first is third
False