如何在Python格式字符串中使用变量的值

2 投票
1 回答
1965 浏览
提问于 2025-04-17 10:39

请告诉我在Python中像这样的事情是可能的。我似乎无法让它正常工作。

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

我一直得到这个错误

KeyError: 'MY_LENGTH_CONSTRAINT'

1 个回答

4

在传给 format 的参数中添加 mcl = MY_LENGTH_CONSTRAINT

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

你还可以在格式字符串中引用本地变量,并通过传递 **locals() 来告诉 format 这些变量的值:

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

(或者类似地,使用全局变量,并将 **globals() 传给 format。)

撰写回答