python是動態語言,定義變量時不用指定變量類型,在代碼執行過程當中,會根據變量的值肯定變量類型。python中經常使用的變量類型有int
float
long
bool
str
list
tuple
set
dict
等,變量類型的判斷常藉助於types
庫及內置的type(object)
和isinstance(object,class-or-type-or-tuple)
方法,下面分別來看一下如何經過這些方法進行變量類型的判斷。
python
python中有一個內置的庫types
,該庫中有一系列type
類型的常量,如types.IntType
爲int
類型,types.StringType
爲str
類型,使用該庫結合內置的type(object)
函數進行比較能夠判斷變量類型:ide
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
爲了方便起見,也能夠不借助於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})
內置的isinstance(object, class-or-type-or-tuple)
也能夠用來判斷變量類型,返回一個布爾值:spa
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))