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 = [1, 2] myTuple = (1, 2) mySet = set([1, 2]) 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([1]) type(myTuple) is type((1,)) type(mySet) is type(set([1])) type(myDict) is type({1:2})
3.使用isinstance(object, class-or-type-or-tuple):
内置的 isinstance(object, class-or-type-or-tuple) 也可以用来判断变量类型,返回一个布尔值:
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))
完。
时间: 2024-11-01 21:10:08