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是old。
将一个对象放入存储对象引用的容器中并不会改变对象的身份。
列表赋值后s[0] = x,保证s[0]是x。
如果一个对象是单例,意味着只能存在一个该对象的实例。在赋值a = None和b = None之后,可以确保a 和b 是相等的,因为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
以上是在Python中,我什么时候可以依赖于使用is运算符进行身份测试?的详细内容。更多信息请关注PHP中文网其他相关文章!