2012-01-19 18 views
2

Pythonでこれが可能なことを教えてください。あなたはまた、ローカル変数を参照することができPythonの書式文字列で変数の値を使うにはどうすればいいですか

MY_LENGTH_CONSTRAINT = 24 
myFormatStr = '{mykey:<{mlc}s}' 
myStr = myFormatStr.format(mykey='Something', 
          mlc = MY_LENGTH_CONSTRAINT) 
print(myStr) 
# Something    

を:私はそれが私がformatに供給されたパラメータにmcl = MY_LENGTH_CONSTRAINTを追加

KeyError: 'MY_LENGTH_CONSTRAINT' 

答えて

4

を得続ける

MY_LENGTH_CONSTRAINT = 24 
myFormatStr = '{mykey:<${MY_LENGTH_CONSTRAINT}s}' 
myStr = myFormatStr.format(mykey='Something') 

を動作させるように見えることはできませんあなたの書式文字列に、**locals()

012を渡して、値の formatを通知してください
MY_LENGTH_CONSTRAINT = 24 
myFormatStr = '{mykey:<{MY_LENGTH_CONSTRAINT}s}' 
myStr = myFormatStr.format(mykey='Something', **locals()) 
print(myStr) 
# Something    

(または同様に、グローバル変数を使用し、format**globals()を渡す。)もちろん

+0

が、これは暗黙のうちに行うことができる場合、私は思っていました。私は、ルビーは私がPythonでここで探しているような機能を持っていると信じています。 – user1159503

+0

ああ、今私が探しているのは...ありがとう! – user1159503

関連する問題