7

在 Python 中,str()、int()、float() 等函数通常用于执行类型转换。但是,这些要求您在开发时知道要转换为哪种类型。我正在尝试编写的一些 Python 代码的子问题如下:

给定两个变量foobar,找出 的类型foo。(在开发时不知道,因为这是通用代码。)然后,尝试转换bar为任何类型foo。如果无法做到这一点,则抛出异常。

例如,假设您调用了执行此操作的函数conv。它的签名看起来像

def conv(foo, bar) :
    # Do stuff.

它会被称为:

result = conv(3.14, "2.718")  # result is now 2.718, as a float.
4

3 回答 3

16

那将是最好的:

type(foo)(bar)
于 2009-03-07T17:57:32.010 回答
11

用于foo.__class__获取foo. 然后调用它将 bar 转换为 foo 的类型:

def conv(foo, bar) :
    return foo.__class__(bar)

当然,这只有在类型foo有一个知道如何转换 bar 的构造函数时才有效。

于 2009-03-07T17:21:42.800 回答
0
type(foo)

绝对是最好的,如果你想检查一个类型,那么“类型”是最好的方法,我的python 2.7 - 3.2.2, type()工作很完美。

于 2011-12-05T19:50:20.217 回答