type():
我们来判断对象类型,使用type()函数:
type(123)
<class 'int'>
type('str')
<class 'str'>
type(None)
<type(None) 'NoneType'>
如果一个变量指向函数或者类,也可以用type()判断:
type(abs)
<class 'builtin_function_or_method'>
type(a)
<class '__main__.Animal'>
isinstance():
isinstance()可以告诉我们,一个对象是否是某种类型。在继承中,子类也属于是父类的类型。
能用type()判断的基本类型也可以用isinstance()判断:
isinstance('a', str)
True
isinstance(123, int)
True
isinstance(b'a', bytes)
True
并且还可以判断一个变量是否是某些类型中的一种,比如下面的代码就可以判断是否是list或者tuple:
isinstance([1, 2, 3], (list, tuple))
True
isinstance((1, 2, 3), (list, tuple))
True
dir():
如果要获得一个对象的所有属性和方法,可以使用dir()函数,它返回一个包含字符串的list,比如,获得一个str对象的所有属性和方法:
dir('ABC')
['__add__', '__class__',..., '__subclasshook__', 'capitalize', 'casefold',..., 'zfill']