kuz*_*roo 3 python string-formatting
在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()
Run Code Online (Sandbox Code Playgroud)
这format(**dict(locals(), **globals())))是非常满口的.当我想用名称替换全局变量和局部变量时,是否有更简洁的方法来进行字符串模板化?
在3.6中,您最终将获得字符串插值的语法级支持:
f"{GLOBAL_VAR} {local_var}" # No format(), locals(), or globals()!
Run Code Online (Sandbox Code Playgroud)
在撰写本文时,3.6还没有到此.
在3.5中,您可以在同一函数调用中解压缩两个dicts用于关键字参数:
"{GLOBAL_VAR} {local_var}".format(**globals(), **locals())
Run Code Online (Sandbox Code Playgroud)
3.5 就在这里,但也许你没有使用它,或者你必须支持旧的Python版本.
在3.5以下的Python版本中,没有更简洁的东西.
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |