2012-04-04 10 views
3

従来のコードをサポートするために、テキストファイルを読み込んで、デフォルト値を上書きするために使用されるx=102file=foo.datのような文で解析する必要があります。 2番目はfile='foo.dat'ではないことに注意してください。これらはPythonの文ではありませんが、近いです。Pythonで型を検出してその型にキャスト

デフォルトオブジェクトのtypeを取得できるので、xはintで、fileはstrでなければなりません。だから、右手側をそのタイプにキャストする方法が必要です。私はプログラムでこれをやりたいので、簡単なデフォルト設定関数を呼び出すことができます。特に、私はすべての組み込み型をループする必要はありません。出来ますか?

+0

に等しいint型ですか? –

答えて

0

それは実際にはかなり簡単です:

textfromfile = '102' 
defaultobject = 101 
value = (type(defaultobject))(textfromfile) 

valueは、あなたが「私はデフォルトのオブジェクトの種類を取得することができます」とはどういう意味ですか102

+2

余分な中かっこは不要です: 'type(defaultobject)(textfromfile)' – orlp

+1

真です。私はこの構文を好むだけです。 – Mike

5
# Get the type object from the default value 
value_type = type(defaults[fieldname]) 

# Instantiate an object of that type, using the string from the input 
new_value = value_type(override_value) 
関連する問題