Python中isinstance和type都能查看对象类型

isinstance()和type()两者是Python的内建函数,都可以获取对象类型。
比如:

>>> isinstance(12, int)
True
>>> type(12)
<class 'int'>
>>> isinstance(3.5, float)
True
>>> type(3.5)
<class 'float'>
>>> isinstance("123babababb",str)
True
>>> type("123babababb")
<class 'str'>

instance还可以判断某个对象是否是属于一系列类型中的某一种,比如:

>>> isinstance('adf',(str,float,int))
True

如果对象不属于任何一个数据类型,则返回False。

>>> isinstance('adf',(float,int))
False

这两个函数的不同主要体现在,是否认为子类的实例化对象属于父类类型。
isinstance()会认为子类的实例化对象属于父类类型,但是type()则不会认为子类的实例化对象属于父类类型。看个例子:

class A:
    pass
class B(A):
    pass

a=A()
isinstance(a, A)  # returns True
type(A()) is A      # returns True

isinstance(B(), A)    # returns True
type(B()) is A        # returns False
发布了187 篇原创文章 · 获赞 270 · 访问量 172万+

猜你喜欢

转载自blog.csdn.net/liuchunming033/article/details/87724994