为了支持一些遗留代码,我必须阅读一个文本文件并解析它可能用于覆盖默认值的x=102
和file=foo.dat
之类的语句。请注意,第二个没有file='foo.dat'
;这些不是python语句,但它们很接近。
现在,我可以获得默认对象的type
,因此我知道x
应该是一个int而file
应该是一个str。所以,我需要一种方法将右侧投射到那种类型。我想以编程方式执行此操作,以便我可以调用单个简单的默认设置函数。特别是,我宁愿不必遍历所有内置类型。有可能吗?
答案 0 :(得分: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)
答案 1 :(得分:0)
实际上非常简单:
textfromfile = '102'
defaultobject = 101
value = (type(defaultobject))(textfromfile)
现在,value
是一个等于102的int。