我正在尝试编写一个函数来猜测表示为字符串的变量类型。
所以,如果我有一个类型的变量,那么为了找出变量的类型,我可以使用python的type()
函数,如type(var)
。但是我如何简洁地和pythonicaly将此函数的输出转换为字符串,以便在整数的情况下输出类似于'int',在bool的情况下输出为'bool'等。
我看到我能做到这一点的唯一方法是首先使用str(type(var))
,然后使用正则表达式去除指示类型的部分。
所以基本上我可以编写一个简单的类型猜测python函数,如下所示:
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.
答案 0 :(得分:3)
你到底想要做什么?如果您只想获取可以使用的对象类的名称:
type(var).__name__
这将为您提供对象var
的类的名称。
答案 1 :(得分:2)
>>> type(0).__name__
'int'
>>> type('').__name__
'str'
>>> type({}).__name__
'dict'