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 的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样,而 == 是用来检查两个对象是否相等。