描述
isinstance()
函数来判断一个对象是否是一个已知的类型,类似 type()
。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
用法
isinstance(object, classinfo)
# object -- 实例对象。
# classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
举例
for sub_module in alexnet.modules(): # 遍历每一个网络层,有顺序
if not isinstance(sub_module, nn.Conv2d): # 如果是卷积层,才继续执行
continue
tppe()和isinstance()区别
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