7

Python では、通常、str()、int()、float() などの関数を使用して型変換を実行します。ただし、これらは開発時にどの型に変換したいかを知る必要があります。私が書こうとしているいくつかの Python コードのサブ問題は次のとおりです。

foo2 つの変数とが与えられた場合bar、 の型を見つけます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)

もちろん、これは の型がfoobar を変換する方法を知っているコンストラクターを持っている場合にのみ機能します。

于 2009-03-07T17:21:42.800 に答える
0
type(foo)

タイプをチェックしたい場合は、「タイプ」が最良の方法であり、私はpython 2.7 - 3.2.2, type()完全に機能しています。

于 2011-12-05T19:50:20.217 に答える