python中的变量存储在内存中的位置,用id()来表示。is
运算符比较的是两个变量是否指向了同一个对象,即id是否相同;而==
比较的是两个对象的值是否相同。
即使变量a和b内存地址不一样,只要值相同,则a == b
为true
。
对于is
的运算结果,它和python的变量缓存以及其他复杂的因素有关,我暂时不了解,感觉是个坑……可能以后有时间了再来填吧。
结论:在进行逻辑判断变量值是否相等时,还是尽量使用==
吧。
python中的变量存储在内存中的位置,用id()来表示。is
运算符比较的是两个变量是否指向了同一个对象,即id是否相同;而==
比较的是两个对象的值是否相同。
即使变量a和b内存地址不一样,只要值相同,则a == b
为true
。
对于is
的运算结果,它和python的变量缓存以及其他复杂的因素有关,我暂时不了解,感觉是个坑……可能以后有时间了再来填吧。
结论:在进行逻辑判断变量值是否相等时,还是尽量使用==
吧。