Python身份运算符
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
注:id() 函数用于获取对象内存地址。
以下实例演示了Python所有身份运算符的操作:
实例(Python 2.0+)
#!/usr/bin/python# -*- coding: UTF-8 -*-a = 20b = 20if(aisb): print"1 - a 和 b 有相同的标识"else: print"1 - a 和 b 没有相同的标识"if(aisnotb): print"2 - a 和 b 没有相同的标识"else: print"2 - a 和 b 有相同的标识"# 修改变量 b 的值b = 30if(aisb): print"3 - a 和 b 有相同的标识"else: print"3 - a 和 b 没有相同的标识"if(aisnotb): print"4 - a 和 b 没有相同的标识"else: print"4 - a 和 b 有相同的标识"
以上实例输出结果:
1- a 和 b 有相同的标识
2- a 和 b 有相同的标识
3- a 和 b 没有相同的标识
4- a 和 b 没有相同的标识
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。
>>> a =[1,2,3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True