《Python核心编程》中 `type(a)== type(b)` 与 `type(a) is type(b)`的区别
PHP中文网
PHP中文网 2017-04-17 14:45:35
[Python讨论组]
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(5)
PHP中文网

is check 两边的值是否为同一对象. == 实际上call了左值的__eq__(), 然后pass给右值.

怪我咯

http://blog.csdn.net/imzoer/article/details/8637408

伊谢尔伦

== 是比大小
is 是找地址
找地址更快、高效

PHP中文网

type(a) == type(b) : a,b继承的类 (类也是基类的实例) 值相等 就像:

c = [1,2,3]
d = [1,2,3]
c == d
>>> True
c is d
>>> false

type(a) == type(b): a,b继承的类 是同一个实例(内存地址相同)就像

c = 1
d = 1
c == d
>>> True
c is d
>>> True
ringa_lee

也举个例子

class A(object):
    def __eq__(self, other):
        return False

a = A()
print(a == a)   #False
print(a is a)   #True
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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