python对象判断isintance/is等

isintance/type 的区别
尽量使用isintance

内置的 type() 函数可以用来查询变量所指的对象类型。
isinstance(1, int)

区别:

class A:
pass

class B(A):
pass

isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False

 


type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。

 

is/== 的区别

is 用来判断是不是一个对象, id(x) 是否相同
官方文档中说 is 表示的是对象标示符(object identity),而 == 表示的是相等(equality)。is 的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样,而 == 是用来检查两个对象是否相等。

posted on 2021-01-04 23:30  思此狂  阅读(230)  评论(0编辑  收藏  举报

导航