因此,我需要将值转换为给定类型:
if 'int' == type_name:
value = int(value)
elif 'str' == type_name:
value = str(value)
...
有没有办法通用地做到这一点?例如:
type_instance = get_type_instance(type_name)
value = type_instance(value)
我正在使用 Python 2.7,但也对 Python 3.X 解决方案感兴趣。
更新:
这是我正在使用的解决方案:
class Token:
def __init__(self, type_name, value):
self.type = type_name
self.value = __builtins__[type_name](value) # not safe
这只是一个玩具解析器。 不要在生产中使用!
最佳答案
如果你只需要 __builtins__
类型你可以做
value = getattr(__builtins__, type_name)(value)
关于python - 在 Python 中从字符串中获取类型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12178649/