初窺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.IntTypeint類型,types.StringTypestr類型,使用該庫結合內置的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))


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章