举一个简单的例子,假设一个实用方法,它接受一个python对象input_obj
,并且out_type
,一个python type
将该对象转换(类型转换)为
def convert_obj(input_obj,out_type):
-例子
convert_obj('2','int') #returns 2 convert_obj([1,2,3],'tuple') #returns (1,2,3)
该方法仅支持特定类型的对象,如str,list,tuple,然后检查是否可以将其转换为指定的out_type.这是方法中的规则手册:
supported_conversions = { tuple: [str, list, set], str: [tuple, float, list, long, int, set], float: [str, long, int], list: [tuple, str, set], long: [str, float, int], dict: [tuple, str, list, set], int: [str, float, long], set: [tuple, str, list], }
其中的键supported_conversions
是input_obj的允许类型.
问题:除了在所有可能的python类型的列表上使用try/except来转换每种类型的样本对象,然后查看有效的内容,例如检查str
[list,dict,tuple,int,tuple,set]的转换是有一个更好的方法在python中生成dict supported_conversions
,给它的键?
注意:要忽略类型转换的其他异常.例如,"1"可以转换为整数1,但"XYZ"不能.但这仍然意味着str-> int是一种有效的可能转换.