2024-09-29 17:15:58 发布
网友
我想做的示例:
x = 123 TYPE_TO_CONVERT_TO = 'int' intx = convert(x, TYPE_TO_CONVERT_TO)
您可以自己使用类型,因为它们在实现中包含__call__。你知道吗
__call__
def func(x, typ): typ = eval(typ) return typ(x) func('12', 'list') >>> ['1', '2'] func(1, 'str') >>> '1'
您还可以使用:
t = eval(TYPE_TO_CONVERT_TO) t('123') # => 123
类型int(和其他内置对象)位于一个特殊的名称空间(模块)中,您可以使用import builtins访问该名称空间。因此,您可以:
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__,但这是一个实现细节。正如aranfey在评论中指出的,import builtins是获得引用的正确方法。你知道吗
builtins
__builtins__
您可以自己使用类型,因为它们在实现中包含
__call__
。你知道吗您还可以使用:
类型
int
(和其他内置对象)位于一个特殊的名称空间(模块)中,您可以使用import builtins
访问该名称空间。因此,您可以:如果还希望支持在当前模块中定义的类型,可以使用:
builtins
模块也可以使用__builtins__
,但这是一个实现细节。正如aranfey在评论中指出的,import builtins
是获得引用的正确方法。你知道吗相关问题 更多 >
编程相关推荐