Python身份运算符:is、is not

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

你可能感兴趣的:(Python,python)