从函数名称获取内置函数

时间:2012-03-01 19:26:58

标签: python

如何从名字中获取int(),float(),dict()等callables?例如,我正在尝试将Python值保存到xml并将变量类型存储为字符串。有什么方法可以在从字符串转换回Python类型时从字符串中获取可调用内容吗?

通常我会做类似getattr(myobj,'str')的事情,但是没有模块可以用作这些内置转换函数的第一个参数。我也尝试了getattr(object,'str'),但这也不起作用,因为这些函数不是基础'对象'类型的一部分,只是语言的全局变量。

3 个答案:

答案 0 :(得分:14)

  

通常我会做getattr(myobj, 'str')之类的事情,但是没有模块可以作为这些内置转换函数的第一个参数。

错了,有:

import __builtin__
my_str = getattr(__builtin__, "str")

(在Python 3.x中:import builtins

答案 1 :(得分:3)

您无需导入任何内容

vars(__builtins__)['dict']
vars(__builtins__)['float']
vars(__builtins__)['int']

答案 2 :(得分:0)

一种快捷方式是从__builtin__模块调用它。例如

>>> import __builtin__
>>> __builtin__.__dict__['str'](10)
'10'