Python 恒等运算符

python

Python 恒等运算符

关键字运算符含义
is检查两边是否恒等
is not检查两边是否不恒等
python
# 使用运算符 is 检查 get() 函数是否返回 None
elements = {"hydrogen": 1, "helium": 2, "carbon": 6}
n = elements.get("dilithium")
print(n is None)
print(n is not None)

🔨 编译结果

python
True
False

恒等运算符与 == 运算符

区别

Python 中的比较:is 与 ==

  • is 恒等运算符比较的是两个实例对象是否完全相同(即占用的内存地址是否相同)
  • == 运算符比较的是两个对象的内容是否相等(占用内存地址可以不同)

引用赋值

python
>>> a = ["I", "love", "Python"]
>>> b = a
# a 的引用复制给 b,在内存中其实是指向了同一个对象
>>> b is a
True
# 查询存储变量值的内存位置
>>> id(a)
46381384
>>> id(b)
46381384
# a 与 b 内容也肯定是相等的
>>> b == a
True
注意

引用赋值两个变量会指向同一个对象,即 ba 指向内存地址相同

但是需要注意只有变量值是可变对象(如列表)时,变量才指向相同的内存地址(更多解释可参考 列表可变性 Mutability

非引用赋值

python
>>> a = ["I", "love", "Python"]
# b 通过切片操作重新分配了对象,值与 a 相同
>>> b = a[:]
>>> b is a
False
>>> id(a)
2305464487552
>>> id(b)
2305464435584
# 值仍然相等
>>> b == a
True

新建对象 ba 指向了不同的内存地址,所以 b is a 的结果为 False


Copyright © 2025 Ben

Theme BlogiNote

Icons from Icônes