跳转至

如何判断 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
回到页面顶部