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

原文地址:https://www.cnblogs.com/jkklearn/p/14233162.html