type()函数如果只有一个参数则返回对象的类型,三个参数返回新的类型对象。
测试和输出:
print(type('hello world'))
<class 'str'>
isinstance()函数用来判断一个对象是否是一个已知的类型。
测试和输出:
print(isinstance('hello world',str))
True
当用来判断一个对象是否属于一个类的时候,isinstance和type有一些区别:
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()会认为子类是一种父类关系,考虑继承关系。
如果要判断两个类型是否相同,推荐使用isinstance()
参考:
https://www.runoob.com/python/python-func-type.html
https://www.runoob.com/python/python-func-isinstance.html