50
tôi chạy sau trong trình thông dịch Python:bình đẳng đôi vs là trong python
>>> foo = 10
>>> dir(foo) == dir(10)
True
>>> dir(foo) is dir(10)
False
>>>
Tại sao điều này?
tôi chạy sau trong trình thông dịch Python:bình đẳng đôi vs là trong python
>>> foo = 10
>>> dir(foo) == dir(10)
True
>>> dir(foo) is dir(10)
False
>>>
Tại sao điều này?
is
kiểm tra 2 đối số tham chiếu đến cùng một đối tượng, ==
kiểm tra 2 đối số có cùng giá trị không. dir()
trả lại số list
có chứa dữ liệu giống nhau cho cả foo
và 10
, nhưng các trường hợp list
thực tế cho 2 điều này là khác nhau.
nội dung thú vị :) – ben
Ví dụ tốt là 1 == Trả về true True, nhưng 1 là True returns False. – Andrew
Một điểm thậm chí có liên quan trực tiếp hơn là 'dir (10) là dir (10) 'thậm chí sẽ không là' True' (chặn một số loại tối ưu hóa thông dịch viên), trong khi 'dir (1) == dir (10)' sẽ là 'True'. –