是否有办法使字符串的内容始终依赖于环境变量(而不仅仅是在运行定义字符串的行时进行插值)?
我可能不清楚,所以这里是我想要的一个例子
my_variable = "foo"
my_string = f"The variable is {my_variable}"
print(my_string)
# Output :
答案是foo
my_variable = "bar"
# Note I'm not doing "my_string = ..." again
print(my_string)
# The desired output :
变量是bar
# The actual output :
变量是foo
答案 0 :(得分:1)
你的意思是这样吗?
my_variable="foo"
my_string = "a string containing {somevar}".format(somevar=my_variable)
print(my_string)
my_variable="bar"
my_string = "a string containing {somevar}".format(somevar=my_variable)
print(my_string)
返回:
a string containing foo a string containing bar
[编辑]啊,我看,你想删除my_string
的第二次显式重新评估并打印出结果,好像它已被评估过一样?
你可以假装不要通过将my_string
定义为函数并为其提供my_variable参数来重新评估字符串。它会看起来像你想要的那样,但会在后台做同样的事情。
def my_string(somevar):
return "a string containing {somevar}".format(somevar=somevar)
my_variable="foo"
print(my_string(my_variable))
my_variable="bar"
#my_string = "a string containing {somevar}".format(somevar=my_variable)
print(my_string(my_variable))
返回:
a string containing foo a string containing bar