Python中的泛型类型转换

2024-10-01 17:41:38 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在python中执行泛型类型转换,类似于我在C#.NET中使用的以下机制:

string typetoConvertTo = "System.String";
string value = (string)Convert.ChangeType( "1", Type.GetType( typetoConvertTo ));

typetoConvertTo = "System.Int32";
int value1 = (int)Convert.ChangeType( "1", Type.GetType(typetoConvertTo));

Python对单个类型有类型转换,但是我需要一些更通用的方法,比如.NET中的上述方法,因为我要存储类型,以后需要执行泛型转换。在

^{pr2}$

Tags: 方法类型convertstringnetvaluetypesystem
3条回答

如果出于某种原因想延迟类型转换,只需将值和类型转换存储为一对。在

>>> entry = (int, '123')
>>> entry[0](entry[1])
123

如果你有一整批,你可以做一些

^{pr2}$

展开它与第一个示例类似。在

我不得不问,为什么不直接转换呢?也许有一种更简单、更直接的方法来解决你想要解决的实际问题。在

您不需要类型映射dict,可以使用eval,但这几乎就像作弊:

>>> t = "int"
>>> v = "3"
>>> eval(t)(v)
3

类是Python中的一类对象。在

>>> t = str
>>> t(123)
'123'
>>> d = {'str': str}
>>> d['str'](123)
'123'

相关问题 更多 >

    热门问题