首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python中的is、==和cmp()

python中的is、==和cmp()

作者头像
用户7886150
修改2021-01-11 10:18:12
修改2021-01-11 10:18:12
8330
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Python cmp方法

说明 

本文在最新的Python3中已失效,Python3移除了__cmp__元方法,采用了__gt__, __lt__, __ge__, __le__, __eq__, __ne__ 这六个元方法 

原文 

从官方文档上看 

The operators ``is`` and ``is not`` test for object identity: ``x is y`` is true if and only if *x* and *y* are the same object.  ``x is not y`` yields the inverse truth value.  

cmp(...)     cmp(x, y) -> integer          Return negative if x<y, zero if x==y, positive if x>y.  

也就是说is用来判断是否是同一个对象 

==用来判断两个对象的值是否相等(跟Java不同,Java中==用来判断是否是同一个对象) 

cmp()函数则是相当于<,==,> 

>>> x='a'

>>> x+'b' is 'ab'

False

>>> x+'b' == 'ab'

True

>>> cmp(x+'b','ab')

0

>>> id(x+'b')

32468384L

>>> id('ab')

46933696L

>>>  

注意: 

>>> a='abc'

>>> b='abc'

>>> a is b

True

>>> id(a) == id(b)

True

>>> 

 可以看出内容相同的字符串实际上是同一个对象(Java中直接赋值的字符串也可用==来判断,但是使用new实例化的对象则需要使用equals(String s)来判断)

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档