gpt4 book ai didi

python - 使用 Python `format` 对局部变量和全局变量进行模板化

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:30 25 4
gpt4 key购买 nike

在 Python 中能够编写像 'Foo bar {some_var} baz'.format(**locals()) 这样的代码真是太好了。根据您习惯使用的其他语言,您可能已经发现它有点冗长,但如果您还想引入全局变量呢?我能做的最好的是:

GLOBAL_VAR = "Hello"

def func():
local_var = "world!"
print("{GLOBAL_VAR} {local_var}".format(**dict(locals(), **globals())))

func()

那个 format(**dict(locals(), **globals()))) 相当冗长。当我想按名称替换全局变量和局部变量时,是否有更简洁的方法来进行字符串模板化?

最佳答案

在 3.6 中,您最终将获得对字符串插值的语法级支持:

f"{GLOBAL_VAR} {local_var}" # No format(), locals(), or globals()!

在撰写本文时,3.6 尚未发布。

在 3.5 中,您可以在同一个函数调用中为关键字参数解压两个字典:

"{GLOBAL_VAR} {local_var}".format(**globals(), **locals())

3.5 在这里,但也许你没有使用它,或者你必须支持旧的 Python 版本。

在低于 3.5 的 Python 版本中,没有比这更简洁的了。

关于python - 使用 Python `format` 对局部变量和全局变量进行模板化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37288082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com