python中==和is与isinstance()和type()区别

一、==和is

    ==:变量名的value值是否相等

    is:变量名的id(地址)是否相等(数字类型的value值相等则id相等)

比如:a=[1],b=[1]

     a,b的value值相等都是[1],所以a==b为True

    a,b的id(内存地址)不相等,所以a is b为False

二、isinstance()和type()

    isinstance(变量名,类型):判断该变量是否是该类型,或者是否是该类和该类的父类类型

    type(变量名):获取该变量名的类型,结合==判断该变量的类型是否等于目标类型(等号右边value值)

比如:a类继承b类,实例c=a()

    isinstance(c,a)和isinstance(c,b)都是True

    type(c)的value值是a,a是不等于b的,所以a==b为False即:type(c)==b为False

    

猜你喜欢

转载自blog.csdn.net/ryuhfxz/article/details/82965200