3

为了支持一些遗留代码,我必须读取一个文本文件并将其解析为类似x=102file=foo.dat可能用于覆盖默认值的语句。请注意,第二个没有file='foo.dat';这些不是 python 语句,但它们很接近。

现在,我可以得到type默认对象的,所以我知道它x应该是一个 int 并且file应该是一个 str。因此,我需要一种将右侧转换为该类型的方法。我想以编程方式执行此操作,以便我可以调用一个简单的默认设置函数。特别是,我宁愿不必遍历所有内置类型。可能吗?

4

2 回答 2

5
# Get the type object from the default value
value_type = type(defaults[fieldname])

# Instantiate an object of that type, using the string from the input
new_value = value_type(override_value)
于 2012-04-04T23:00:13.057 回答
0

其实很简单:

textfromfile = '102'
defaultobject = 101
value = (type(defaultobject))(textfromfile)

现在,value是一个等于 102 的 int。

于 2012-04-04T23:02:55.283 回答