所谓Python变量的类型,其实就是它的type,或class。type和class是一个东西,记住,在Python里面,一切都是对象。
Python内置的isinstance函数,是用来判断变量类型的最好的方法,这也是官方推荐的方式。有的时候使用内置的type函数,也可以做判断,不过type函数不能识别子类型,而isinstance函数可以。
>>> isinstance(123,int)
True
>>> isinstance('abc',str)
True
>>> isinstance([1,2,3],list)
True
>>> isinstance((1,2,3),tuple)
True
>>> isinstance({1,2,3},set)
True
>>> isinstance({'a':1,'b':2,'c':3},dict)
True
>>> isinstance(1.234,float)
True
除了判断Python内置的类型外,还可以用来判断自定义的类型,使用方法是一样的。
>>> class test():
... pass
...
>>> a = test()
>>> isinstance(a,test)
True
本小站之前介绍判断可迭代对象的方法:
>>> from collections.abc import Iterable
>>> isinstance('abcd', Iterable)
True
>>> isinstance((1,2,3,4), Iterable)
True
>>> isinstance(1234, Iterable)
False
>>> isinstance({}, Iterable)
True
isinstance函数还可以在一个tuple内判断类型,只要第1个参数的类型符合第2个tuple参数中的任何一个,都返回True:
>>> tt = (int, float)
>>> tt
(, )
>>> isinstance(123, tt)
True
>>> isinstance(1.23, tt)
True
以后判断Python变量的类型,请记住使用内置的isinstance函数哈!
-- EOF --