Python isinstance() 函数
简介
isinstance() 函数来判断一个对象是否是一个已知的类型,是Python的一个内置函数,类似于type()
-
type() 不会认为子类是一种父类类型,不考虑继承关系。
-
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
语法
isinstance(object, classinfo)
参数
- object – 实例对象。
- classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。一般为:int,float,bool,complex,str(字符串),list,dict(字典),set,tuple
输出为布尔值,即True/False
实例
一般的Python运用中
a = 2020
isinstance (a, int) # -->True
isinstance (a, str) # -->False
isinstance (a,(str,int,list)) # 只要是元组中的一个就返回 True
# -->True
另外的例如神经网络中
一般是为不同层添加不用的参数
# 这里就是设置一个条件,如果m为Conv2d层就为该m添加相应的参数
if isinstance(m, nn.Conv2d):
# kernel_size-->卷积核大小
n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
m.weight.data.normal_(0, math.sqrt(2. / n))