質問

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

2つの変数 foo 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.
役に立ちましたか?

解決

foo .__ class __ を使用して、 foo のタイプを取得します。次に、それを呼び出してbarをfooの型に変換します:

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

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

他のヒント

それが最適です:

type(foo)(bar)
type(foo)

は間違いなく最高です。型をチェックしたい場合は&type; quot;が最善の方法であり、私は python 2.7-3.2.2で、type()は完全に動作します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top