Python 中的 is 运算符在什么情况下可以用于身份测试?
示例
is 运算符是 Python 中的身份运算符。它测试对象的身份。让我们来看一个例子:
x = ["Paul","Mark"] y = ["Paul","Mark"] z = x # Python IS operator print(x is z)
输出
True
假设我们考虑另一个例子,其中测试a is b 等价于:
id(a) == id(b)
身份测试的关键属性是:一个对象总是与其自身相同,a is a 总是返回 True。身份测试通常比相等性测试更快。与相等性测试不同,身份测试保证返回布尔值 True 或 False。
然而,只有在保证对象身份的情况下,才能用身份测试代替相等性测试。通常,有三种情况保证身份:
赋值创建新的名称,但不改变对象身份。
赋值new = old后,保证new is old。
将对象放入存储对象引用的容器中不会改变对象身份。
列表赋值s[0] = x后,保证s[0] is x。
如果一个对象是单例,这意味着只能存在该对象的单个实例。赋值a = None和b = None后,保证a is b,因为None是单例。
记住,身份测试不应用于检查整数和字符串等常量,因为它们不能保证是单例。在下面的例子中,我们只得到 False:
整数的身份测试
示例
让我们测试整数元素:
a = 1000 b = 500 c = b + 500 print(a is c)
输出
False
字符串的身份测试
示例
字符串身份测试的示例:
a = 'Amit' b = 'Am' c = b + 'it' print(a is c)
输出
False
可变类型身份测试
示例
在 Python 中,列表是可变的。可变容器的新实例永远不会相同;因此身份测试返回 False:
a = [10, 20, 30] b = [10, 20, 30] print(a is b)
输出
False
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP