kernelsky 发表于 2018-8-4 11:00:02

初窥Python(四)——三种方法判断python变量类型

  python是动态语言,定义变量时不用指定变量类型,在代码执行过程中,会根据变量的值确定变量类型。python中常用的变量类型有int float long bool str list tuple set dict等,变量类型的判断常借助于types库及内置的type(object)和isinstance(object,class-or-type-or-tuple)方法,下面分别来看一下如何通过这些方法进行变量类型的判断。
1. 使用types库结合type(object):
  python中有一个内置的库types,该库中有一系列type类型的常量,如types.IntType为int类型,types.StringType为str类型,使用该库结合内置的type(object)函数进行比较可以判断变量类型:
import types  
myInt = 1
  
myFloat = 1.1
  
myLong = 11111111111
  
myBool = True
  
myStr = "teststring"
  
myList =
  
myTuple = (1, 2)
  
mySet = set()
  
myDict = {"name":"Lucy", "sex": "female"}
  
# 检测类型
  
type(myInt) is types.IntType
  
type(myFloat) is types.FloatType
  
type(myLong) is types.LongType
  
type(myBool) is types.BooleanType
  
type(myStr) is types.String
  
type(myList) is types.ListType
  
type(myTuple) is types.TupleType
  
# types库中没有对应的set类型,set可通过之后的方法进行判断
  
type(myDict) is types.DictType
2. 使用type(object):
  为了方便起见,也可以不借助于types包,直接使用内置的type(object)方法与已知数据类型进行比较来判断变量数据类型:
type(myInt) is type(1)  
type(myFloat) is type(.1)
  
type(myLong) is type(1111111111111)
  
type(myBool) is type(True)
  
type(myStr) is type("a")
  
type(myList) is type()
  
type(myTuple) is type((1,))
  
type(mySet) is type(set())
  
type(myDict) is type({1:2})
3. 使用isinstance(object,>  内置的isinstance(object,>也可以用来判断变量类型,返回一个布尔值:
isinstance(myInt, int)  
isinstance(myFloat, float)
  
isinstance(myLong, float)
  
isinstance(myBool, bool)
  
isinstance(myStr, str)
  
isinstance(myList, list)
  
isinstance(myTuple, tuple)
  
isinstance(mySet, set)
  
isinstance(myDict, dict)
  
# 第二个参数使用tuple类型
  
isinstance(myDict, (list, tuple, set, dict))
页: [1]
查看完整版本: 初窥Python(四)——三种方法判断python变量类型