isinstance 与 type的区别和使用
isinstance\color{#0000FF}{isinstance}isinstance,可以检测当前值是否属于我们给来的类型isinstance(b, (int, str),逗号前面的是要检测的值,逗号后面的是我们要检测的类型,类型也可也写入很多种,写成元组就好
type\color{#0000FF}{type}type,这个就很简洁明了type(a),直接在括号里输入要检测的变量就可告诉你他是什么类型的变量。
二者之间最大的关系是在检测类型时,会不会考虑子类继承父类也算进去\color{#0000FF}{二者之间最大的关系是在检测类型时,会不会考虑子类继承父类也算进去}二者之间最大的关系是在检测类型时,会不会考虑子类继承父类也算进去
isinstance
class acc():
def ame(self):
print('111')
class aml(acc):
def amk(self):
pass
am = aml()
print(isinstance(am,aml))
print(isinstance(am,acc)) #检测一下am和他父类acc的关系
>>>True
True
显然的都是True,因此我们isinstance在检测时会考虑到继承的关系
type
class acc():
def ame(self):
print('111')
class aml(acc):
def amk(self):
pass
am = aml()
print(type(am) is aml)
print(type(am) is acc) #我们使用is来判断实例化的am和类是否会考虑继承
>>>True
False
当程序进行到第二个检测时,打印为False,因此type并不会考虑继承的关系
欢迎一键三连,不要白嫖不要白嫖,点个免费的赞也好,有不懂的可以随时私信我\color{#FF0000}{欢迎一键三连,不要白嫖不要白嫖,点个免费的赞也好,有不懂的可以随时私信我}欢迎一键三连,不要白嫖不要白嫖,点个免费的赞也好,有不懂的可以随时私信我