如何判断 Python 变量的类型?
2019-03-20 by dongnan
两种方式
使用 type 函数
# 字符串
>>> s1 = 'dongnan'
>>> type(s1)
<class 'str'>
# 字节
>>> s2 = s1.encode()
>>> type(s2)
<class 'bytes'>
使用 isinstance 函数
# 除了使用 type()函数 判断类型外,还可以使用 isinstance() 函数。
>>> isinstance(s1, str)
True
>>> isinstance(s2, bytes)
True
# 特别是,判断变量是某些类型中的一种,非常有效。
>>> isinstance(s1, (str,bytes))
True
#其它类型
# 列表
>>> isinstance([],list)
True
# 元组
>>> t1 = ('87fb7182326344a25c31e8df2598bab0', 404, 'Not Found', '')
>>> isinstance(t1,tuple)
True
# 字典
>>> d1 = {'file-type': 'file', 'file-date': '1551853608', 'file-size': '73589'}
>>> isinstance(d1,dict)
True
# 布尔
>>> isinstance(True, bool)
True
小结
isinstance 函数
- 功能 此函数用来判断一个对象是否是一个已知的类型,类似 type。
- 语法
isinstance(object, classinfo)
- 参数
object
实例对象。 - 参数
classinfo
可以是直接或间接类名、基本类型或者由它们组成的元组。 - 返回值 如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。
isinstance 与 type 区别
type
不会认为子类是一种父类类型,不考虑继承关系。isinstance
会认为子类是一种父类类型,考虑继承关系。- 如果要判断两个类型是否相同推荐使用
isinstance
。