在Python中,我什么时候可以依赖于使用is运算符进行身份测试?

王林
发布: 2023-09-12 20:29:06
转载
1276人浏览过

在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。

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

立即学习Python免费学习笔记(深入)”;

  • 赋值会创建新名称,但不会更改对象标识。

    赋值new = old后,保证new是old

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

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

  • 如果一个对象是单例,意味着只能存在一个该对象的实例。在赋值a = Noneb = None之后,可以确保a b 是相等的,因为None 是一个单例。

请记住,身份测试不应用于检查 int 和 str 等不能保证是单例的常量。在下面的例子中,我们只得到 False -

Identity test on int

的翻译为:

对int类型进行身份测试

示例

让我们在整数元素上进行测试 -

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中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号