gpt4 book ai didi

来自当前命名空间的 Python 字符串格式

转载 作者:太空宇宙 更新时间:2023-11-04 06:50:55 25 4
gpt4 key购买 nike

我发现自己写了很多这样的东西:

s = "{v1}_{v2}_{v3}_{v4}_{v5}".format(v1="foo", v2=v2, v3=v3, v4=v4, v5=v5)

是否可以让 Python 的 string.format 使用当前命名空间中的变量?上面的调用可以简化为:

s = "{v1}_{v2}_{v3}_{v4}_{v5}".format(v1="foo")

最佳答案

你有没有想过这样的事情?

>>> v1 = "foo"
>>> v2,v3,v4,v5 = 1,2,3,4
>>> s = "{v1}_{v2}_{v3}_{v4}_{v5}".format(v1="foo", v2=v2, v3=v3, v4=v4, v5=v5)
>>> s
'foo_1_2_3_4'
>>> s = "{v1}_{v2}_{v3}_{v4}_{v5}".format(**locals())
>>> s
'foo_1_2_3_4'

不过,郑重声明,我会避免这样做。如果变量是同一种东西,那么它们应该在某种结构中,从中可以在不使用 locals() 的情况下获得值。即使它们不是,我想我更愿意手动将它们拉到一个单独的字典中,然后在以这种方式使用 locals() 之前使用它。

[Ed:你真是个伪君子。您始终以这种方式使用 string.Templatelocals() 来生成用于模拟的参数文件套件。不要假装你不知道。

我:是的,但我不想鼓励其他人养成我的坏习惯。

Ed:至少你应该承认你发现它很有用,如果你要假装是一些比你更明确的编码员。

我:...]

关于来自当前命名空间的 Python 字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10863837/

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