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所有身份运算符的操作:

#!/usr/bin/python3

a = 20
b = 20

if ( a is b ):
print ("1 - a 和 b 有相同的标识")
else:
print ("1 - a 和 b 没有相同的标识")

if ( id(a) == id(b) ):
print ("2 - a 和 b 有相同的标识")
else:
print ("2 - a 和 b 没有相同的标识")

# 修改变量 b 的值
b = 30
if ( a is b ):
print ("3 - a 和 b 有相同的标识")
else:
print ("3 - a 和 b 没有相同的标识")

if ( a is not b ):
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





更多相关文章

  1. 小白学Python---面向对象02
  2. AttributeError:“MatrixFactorizationModel”对象没有属性“sav
  3. Python:在类中定义对象
  4. 自动完成在VS代码和Python中的自动化对象
  5. 具有相同时区但不同的utcoffset()的Datetime对象
  6. Python 【面向对象(类)】 学习笔记
  7. 如何将json转换为对象?
  8. Python 全栈开发七 面向对象
  9. Python可执行对象——exec、eval、compile

随机推荐

  1. 使用PHP和MySQL开发“测试”Web应用程序
  2. 如何获取关联数组的当前元素数?
  3. 如何使用PHP读取.xls文件(Excel) ?
  4. 在返回按钮上重新加载页面。
  5. php微信网页授权获取用户信息
  6. 如何修复慢速sql查询
  7. php_mvc实现步骤六
  8. Android-Json到arraylist,org.json.JSONEx
  9. 找出数组中大于或等于N的数
  10. 对于PHP中enum的好奇