.net Python中的泛型类型转换
如何在python中执行类似于在C#.NET中使用的以下机制的泛型类型转换: Python对单个类型进行了类型转换,但我需要一些更通用的方法,如.NET中的上述方法,因为我正在存储类型,需要稍后执行通用转换.net Python中的泛型类型转换,.net,python,.net,Python,如何在python中执行类似于在C#.NET中使用的以下机制的泛型类型转换: Python对单个类型进行了类型转换,但我需要一些更通用的方法,如.NET中的上述方法,因为我正在存储类型,需要稍后执行通用转换 value = str(100) value1 = int("100") 如果出于某种原因想要延迟类型转换,只需将值和类型转换成对存储即可 >>> entry = (int, '123') >>> entry[0](entry[1]) 123 如果你有
value = str(100)
value1 = int("100")
如果出于某种原因想要延迟类型转换,只需将值和类型转换成对存储即可
>>> entry = (int, '123')
>>> entry[0](entry[1])
123
如果你有一整批的工作要做,你可以做
conversions_to_do = {}
conversions_to_do[int] = []
conversions_to_do[str] = []
conversions_to_do[int].append('123')
conversions_to_do[int].append('456')
conversions_to_do[str].append(1.86)
展开它类似于第一个示例
我不得不问,为什么不直接转换它呢?可能有一种更简单、更直接的方法来解决您试图解决的实际问题。类是Python中的一流对象
>>> t = str
>>> t(123)
'123'
>>> d = {'str': str}
>>> d['str'](123)
'123'
您不需要类型映射dict,可以使用
eval
,但这几乎就像作弊一样:
>>> t = "int"
>>> v = "3"
>>> eval(t)(v)
3
要转换为的类型实际上以字符串格式存储在数据库中。因此,当我需要对它执行操作时,我更喜欢泛型转换,而不是基于该值的巨大开关循环。一个类型查找字典
type\u lookup={'int':int,'string':str,etc}
然后使用type\u lookup[type\u string](value)
来执行转换可能就是你想要的。hmm。不确定这是否是通用的,因为在我的例子中,第一行中使用的值-str来自数据库。用于索引词典的'str'
值是来自数据库的值。它可以是'super-duper-string'
而不是d={'super-duper-string':str}
和d['super-duper-string'](123)
d
只是您的类型/转换查找映射。
>>> t = "int"
>>> v = "3"
>>> eval(t)(v)
3