我想寫一個函數,猜測一個變量的類型表示爲一個字符串。 因此,如果我有某種類型的變量,那麼爲了找出它是什麼類型的變量,我可以使用python的type()
函數,如type(var)
。但我如何簡潔和pythonicaly將此函數的輸出轉換爲一個字符串,以便在整數情況下輸出爲'int',在bool等情況下爲'bool'等。 我看到的唯一方法是可以這是否首先使用str(type(var))
,然後使用正則表達式去除指示類型的部分。是否有任何簡單的方法來將python中的type()函數的輸出轉換爲字符串?
所以基本上如下,我可以寫一個簡單的類型猜測蟒蛇功能:
import ast
import re
def guess_type(var):
return re.findall('\w+',str(type(ast.literal_eval(var))))[1]
其中var是str
類型。但我的問題是「是否有更簡單的方法來獲得相同的結果?」
說到性能:
In [156]: %timeit guess_type
10000000 loops, best of 3: 28.1 ns per loop.
你爲什麼要將類型轉換爲字符串?這裏的總體目標是什麼?如果你想檢查類型,我不明白爲什麼你需要正則表達式。 – roganjosh
我該如何檢查'[1,2,3]'的類型? – Foobard
它會告訴你它是一個列表...編輯等待,你有一個列表的字符串表示?所以使用'ast.literal_eval'並得到那個類型 – roganjosh