Python中is和==的区别
2013-07-28 11:52
357 查看
通常我们写:
这个写法与以下的写法有何区别呢?
is当比较的是相同的对象实例时总是返回True。而==则完全决定于__eq__()方法的实现。
例如:
if foo is None: pass
这个写法与以下的写法有何区别呢?
if foo == None: pass
is当比较的是相同的对象实例时总是返回True。而==则完全决定于__eq__()方法的实现。
例如:
>>> class foo(object): def __eq__(self, other): return True >>> f = foo() >>> f == None True >>> f is None False
Python中的对象包含三要素:id、type、value 其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值 is判断的是a对象是否就是b对象,是通过id来判断的 ==判断的是a对象的值是否和b对象的值相等,是通过value来判断的
>>> a = 1 >>> b = 1.0 >>> a is b False >>> a == b True >>> id(a) 12777000 >>> id(b) 14986000 >>> a = 1 >>> b = 1 >>> a is b True >>> a == b True >>> id(a) 12777000 >>> id(b) 12777000
相关文章推荐
- python is 和==的区别
- Python 类型判断 变量存在判断 None与空字符串 is和==区别 nan inf判断
- Python中is与 "=="的区别
- Python中is和==的区别和联系
- ==,is,isinstance的区别(Python)
- Python中is和==的区别
- Python3 关键字 in 和 is 的区别
- python3 ==和is的区别
- python 包和模块 等于号(==)和is的区别与联系 对象的拷贝(copy)
- python中is与双等于号“==”的区别示例详解
- [基础] - Python中 is 和 == 的区别
- python is、==区别;with;gil;python中tuple和list的区别;Python 中的迭代器、生成器、装饰器
- Python中is与==判断的区别
- python is == 的区别
- python中is和 == 的区别
- python中is和 == 的区别
- Python is和==的区别
- Python中is和==的区别
- Python中is和==的区别
- python中 is 和 == 的区别