我经常看到以下模式,并想知道是否有避免重复的方法。字符串格式。从本地环境获取关键字参数
life = 42
badger = some_function()
s = "({life}, {badger})".format(life=life,badger=badger)
局部变量通常具有与它们在字符串中的含义相对应的连贯名称。我目前使用的更简洁:
s = "({0}, {1})".format(life,badger)
该模板通常使用关键字更清晰。是否有一种通用/简洁的方式来获取格式以在包含函数的词汇环境中查找关键字?
s = "({life}, {badger})".format(env())
谢谢!
'** locals()'是非常好的,thank you。在两分钟内四个很好的答案是相当了不起的 –
请记住'locals()'只提供一个本地范围内的变量字典 - 如果你想从函数中调用它,那么外部变量都不会实际上你需要创建一个结合了'globals()'和'locals()'的新字典来获得'全范围':'.format(** dict(globals(),** locals()) )'这时它开始变得笨重,内存效率低下,并且潜在的问题缠身了。我建议你扩展'string.Formatter'并实现你自己的范围处理和按需请求值调用。 – zwer