何时可以依赖Python中的is运算符进行身份测试

何时可以依赖Python中的is运算符进行身份测试

示例

is运算符是Python中的身份运算符。它用于测试对象的身份。让我们看一个示例 –

x = ["Paul","Mark"]
y = ["Paul","Mark"]
z = x

# Python IS operator
print(x is z)

输出

True

假设我们考虑另一个示例,其中测试 a 等于 b

id(a) == id(b)

身份测试的关键属性是一个对象始终与自身相同,a总是返回True。身份测试通常比相等性测试快。而且,与相等性测试不同,身份测试保证返回布尔值True或False。

然而,在确保对象身份时,身份测试只能替代相等性测试。通常情况下,有三种情况可以保证身份准确:

  • 赋值创建了新的名称,但不会改变对象的身份。

赋值之后 new = old ,保证 new is old

  • 将对象放入存储对象引用的容器中不会改变对象的身份。

列表赋值之后 s[0] = x ,保证s[0]是x。

  • 如果一个对象是 单例 ,意味着该对象只能存在一个实例。在赋值 a = Noneb = None 之后,保证 ab,因为 None 是一个单例。

请记住,身份测试不应用于检查不保证是单例的常量,例如int和str。在下面的示例中,我们只得到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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程