Python-如何通过使用字符串'int'将字符串转换为int

时间:2018-10-25 21:03:29

标签: python python-3.x

我想做的事的例子:

x = 123
TYPE_TO_CONVERT_TO = 'int'

intx = convert(x, TYPE_TO_CONVERT_TO)

3 个答案:

答案 0 :(得分:5)

类型int(和其他内置对象)位于特殊的命名空间(模块)中,您可以使用import builtins对其进行访问。因此,您可以执行以下操作:

intx = getattr(builtins, TYPE_TO_CONVERT_TO)(x)

如果您还希望支持当前模块中可能定义的类型,则可以使用:

intx = (globals().get(TYPE_TO_CONVERT_TO) or getattr(builtins, TYPE_TO_CONVERT_TO))(x)

builtins模块也可以使用__builtins__来使用,但这是一个实现细节。正如Aran-Fey在评论中指出的那样,import builtins是获取参考的正确方法。

答案 1 :(得分:0)

您还可以使用:

t = eval(TYPE_TO_CONVERT_TO)
t('123') # => 123

答案 2 :(得分:0)

您可以单独使用类型,因为它们在实现中包含__call__

def func(x, typ):
    typ = eval(typ)
    return typ(x)

func('12', 'list')
>>> ['1', '2']

func(1, 'str')
>>> '1'