【python】获取数据类型
在python中,是沒有定義數據類型的,比如數字 a = 10,那么變量a就是int類型,但 比如C++中是 int a = 1
如果需要獲取變量的類型時,怎么做呢?可以使用python中的內置函數 type()或instance()
對于基本類型來說 classinfo 可以是:
int,float,bool,complex,str(字符串),list,dict(字典),set,tuple
ps:classinfo 的字符串是 str 而不是 string,字典也是簡寫 dict
現在的需求是獲取對應的數據類型并將該類型返回給前端,發現返回的json后數據出錯
>>>p = {
"name":"swapi",
'type':type("swapi")
}
{'name': 'swapi', 'type': <class 'str'>}
原來 type("swapi") 為class 類型數據
那通過什么方式可以輸出的 'type' 為 int,float,bool,complex,str,list,dict,set,tuple 這些基本的字符串而不是class類型呢?
type可否有直接輸出如 'str' 這樣的字符串格式?倒騰一圈發現并沒有!那 class 類型數據可否獲取到該內容信息呢?
原來提供了類的專有方法 __name__
>>>a = 'swapi'
>>>print(type(a).__name__)
str
>>>b = {"x":"y"}
>>>print(type(b).__name__)
dict
又有如下栗子
>>>import Test
>>>Test.__name__ #Test模塊的__name__
'Test'
下面看看type()和instance()的具體使用
type()
type(object)
type(name, bases, dict)
參數:
name:類的名稱。
bases:基類的元組。
dict:字典,類內定義的命名空間變量。
返回值:
一個參數返回對象類型, 三個參數,返回新的類型對象。
栗子:
# 一個參數實例
>>> type(1)
<type 'int'>
>>> type('school')
<type 'str'>
>>> type([2])
<type 'list'>
>>> type({0:'zero'})
<type 'dict'>
>>> x = 1
>>> type( x ) == int # 判斷類型是否相等
True
# 三個參數
>>> class X(object):
... a = 1
...
>>> X = type('X', (object,), dict(a=1)) # 產生一個新的類型 X
>>> X
<class '__main__.X'>
isinstance()
isinstance(object, classinfo)
參數:
object – 實例對象。
classinfo – 可以是直接或間接類名、基本類型或者由它們組成的元組
返回值:
如果對象的類型與參數二的類型(classinfo)相同則返回 True,否則返回 False
栗子:
>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元組中的一個返回 True
True
如果要判斷兩個類型是否相同推薦使用 isinstance()
總結
以上是生活随笔為你收集整理的【python】获取数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 枕头有多高?采用枕头高度
- 下一篇: 自嗨锅的加热原理