Python身份运算符:is、is not
运算符 | 示例 |
---|---|
is | x is y ,类似id(x) == id(y),相同对象(相同内存地址),返回True,否则返回False |
is not | x is not y,类似id(x) != id(y),不同对象(不同内存地址),返回True,否则返回False |
- id():获取内存地址
a=3
b=3
if a is b:
print('a和b是同一个对象(a和b内存地址相同)')
else:
print('a和b不是同一个对象(a和b内存地址不同)')
c=5
if a is not c:
print('a和c不是同一个对象(a和b内存地址不同)')
else:
print('a和c是同一个对象(a和b内存地址相同)')
# 结果:
# a和b是同一个对象(a和b内存地址相同)
# a和c不是同一个对象(a和b内存地址不同)
is 与 == 的区别:
- is:判断内存地址
- ==:判断变量的值
a=[1,2,3]
b=a#这里b和a指向同一个内存地址
print(a is b)#True
print(a == b)#True
c=a[:]#这里c产生新的内存空间
print(a is c)#False
print(a == c)#True