问题:Python中type与isinstance方法的区别
在Python中,我们使用type和isinstance来测试和判断数据类型,其中type用于获取对象的类型,其返回值是对象的类型;isinstance用于测试对象是否是某种类型,返回True或False
区别
① 目的不同,type主要用于返回对象的类型,isinstance用于判断对象是否是指定类型
② 返回值不同,type返回类型,isinstance返回True或False
a = 12
b = 1.2
print(type(a)) # <class 'int'>
print(type(b)) # <class 'float'>
if type(a) == int:
print('int')
print(isinstance(a, int)) # True
print(isinstance(a, float)) # False
print(isinstance(a, (int, float))) # True
print(isinstance(b, (int, float))) # True
③ type不能判断子类对象是否属于父类,而isinstance可以
# 父类
class Father:
pass
# 子类
class Son(Father):
pass
if __name__ == '__main__':
son = Son()
print(type(son)) # <class '__main__.Son'>