1. is运算符判断的是同一性而不是相等性。
#x和y都绑定到同一个列表,而z被绑定在另外一个具有相同数值和顺序的列表上 x = y = [1, 2, 3] z = [1, 2, 3] x == y #True x == z #True x is y #True x is z #False
2. 避免将is运算符用于比较类似数值和字符串这类不可变值。[缓存原因]
x = 1 y = 1 x is y #True x = 'hello' y = 'hello' x is y #True
1. is运算符判断的是同一性而不是相等性。
#x和y都绑定到同一个列表,而z被绑定在另外一个具有相同数值和顺序的列表上 x = y = [1, 2, 3] z = [1, 2, 3] x == y #True x == z #True x is y #True x is z #False
2. 避免将is运算符用于比较类似数值和字符串这类不可变值。[缓存原因]
x = 1 y = 1 x is y #True x = 'hello' y = 'hello' x is y #True