1.函数名及其来源
type() 函数命名来源于英文单词type(类型)。
用于显示变量的类型
type 函数的例子:
>>>x = 1
>>>type(x)
复制代码
这里补充一个基础知识,数据类型:
Python3 中有六个标准的数据类型:
Number(数字)包含 int、float、bool、complex(复数)4个基础类型
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
可变数据类型就是可以修改其内容,内存地址不变(见下一节id()函数详解)。
不可变数据类型意味着一旦改变内容就是一个新的对象写入新内存空间,
原对象自动回收被销毁。
type用于检查变量的基本类型,注意在包含继承关系的类判断需要使用isinstance
这里对isinstance不做展开。在以后学习到类和继承的时候再来理解更好。
type只能传一个参数,返回的是参数的基本类型,经常用于校验输入参数类型是否符合需求。
如果要判断两个类型是否相同推荐使用 isinstance()。
2.函数定义源码及其用法拆解
type(object)
type(name, bases, dict)#三个参数返回新类型对象的用法不常用,在此略过
复制代码
比如我们需要比较年龄大小
而输入的参数从input()获取的我们不知道是否已经转换为了整型
可以加入判断:
>>> age_1 = 18
>>> age_2 = '20'
>>> type(age_2)
>>> type(age_1)
>>> type(age_1).__name__ == 'int' #获取的名字属性,用于判断
True
>>>type(age_2).__name__ == 'int'
False
复制代码
3.版本差异
python2 中整数分为int(整型) 不超过sys.maxint, long(长整型)
python3 中整数统一为int类型
所以同一个较长的整数在python2和python3中判断type结果可能不同
在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True
4.学习建议
type判断变量类型常常用在程序调试中或入参判断,明确数据类型能避免很多基础的错误。