玩蛇网提供最新Python编程技术信息以及Python资源下载!

《Python核心编程》书中关于type的不解

type(a)== type(b)type(a) is type(b)的区别,为什么用后者不用前者呢?

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

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

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

也举个例子

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

a = A()
print(a == a)   #False
print(a is a)   #True

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

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd18821.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 19时41分54秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules