有没有简单的方法将python中的type()函数的输出转换为字符串?

时间:2017-09-04 21:04:50

标签: python

我正在尝试编写一个函数来猜测表示为字符串的变量类型。 所以,如果我有一个类型的变量,那么为了找出变量的类型,我可以使用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.

2 个答案:

答案 0 :(得分:3)

你到底想要做什么?如果您只想获取可以使用的对象类的名称:

type(var).__name__

这将为您提供对象var的类的名称。

答案 1 :(得分:2)

>>> type(0).__name__
'int'
>>> type('').__name__
'str'
>>> type({}).__name__
'dict'