在python中,检测类型,然后转换为该类型

时间:2012-04-04 22:56:21

标签: python

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

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

2 个答案:

答案 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。