Как я могу использовать значение переменной в строке формата Python - PullRequest
2 голосов
/ 20 января 2012

Пожалуйста, скажите мне, что это возможно в Python. Я не могу заставить его работать

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

Я продолжаю получать

KeyError: 'MY_LENGTH_CONSTRAINT'

1 Ответ

4 голосов
/ 20 января 2012

Добавить mcl = MY_LENGTH_CONSTRAINT к параметрам, переданным в format:

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

Вы также можете обратиться к локальным переменным в строке формата и сообщить format о значениях, передав его **locals():

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

(или аналогично, используйте глобальные переменные и передайте format **globals().)

...