Python độ hoạt động chaining nếu nó gặp các nhà khai thác của cùng một ưu tiên khi đánh giá một biểu thức.
so sánh, trong đó có bài kiểm tra, mà tất cả đều có cùng độ ưu tiên chuỗi từ trái sang phải
Các nhà khai thác dưới đây đề cập có cùng độ ưu tiên.
in, not in, is, is not, <, <=, >, >=, <>, !=, ==
Vì vậy, khi Python cố gắng để đánh giá biểu thức True is False == False
, nó gặp các nhà khai thác is
và ==
có cùng độ ưu tiên, vì vậy nó thực hiện chaining được kết từ trái sang phải.
Vì vậy, khái niệm True is False == False
là thực sự đánh giá là:
(True is False) and (False == False)
cho False
như đầu ra.
Nguồn
2015-07-11 07:17:50
Dường như bạn đã vào một trong số ít các góc tối của cú pháp Python (nghĩa là những nơi mà kết quả là khá đáng ngạc nhiên). – 6502