Python 3.x 为什么;a是b;即使两者的值相同,也为false?

Python 3.x 为什么;a是b;即使两者的值相同,也为false?,python-3.x,Python 3.x,在这里,a和b被分配了两个相同的复数,那么为什么“a是b”命令显示它的false而不是true呢?它们有不同的内存地址 >a=10+5j >>>b=10+5j >>>a是b 假的 >>>a==b 真的 >>>a=b >>>a是b 真的 如果我们给a和b赋值10,则“a是b”为真。区别是什么10是一个基元,10+5j是一个类(复杂类型) a=10+5j b=10+5j print(a is b) #Both are of complex types

在这里,a和b被分配了两个相同的复数,那么为什么“a是b”命令显示它的false而不是true呢?它们有不同的内存地址

>a=10+5j
>>>b=10+5j
>>>a是b
假的
>>>a==b
真的
>>>a=b
>>>a是b
真的

如果我们给a和b赋值10,则“a是b”为真。区别是什么10是一个基元,10+5j是一个类(复杂类型)
a=10+5j
b=10+5j
print(a is b)
#Both are of complex types