Python-.format在.format中
我真的很喜欢使用.format来调用命令,而不是重复我自己。我有这个功能Python-.format在.format中,python,format,Python,Format,我真的很喜欢使用.format来调用命令,而不是重复我自己。我有这个功能 def function_1(command): subprocess.call(['{0} ; {1} ; {2}; {3}'.format(var_0, var_1, var_2, command)]) 然后在另一个函数中 def function_2() function_1('command {0} {2}') 我想使用在第一个函数中定义的变量,只需像在第一个函数中一样调用它们。我不想在两个函数
def function_1(command):
subprocess.call(['{0} ; {1} ; {2}; {3}'.format(var_0, var_1, var_2, command)])
然后在另一个函数中
def function_2()
function_1('command {0} {2}')
我想使用在第一个函数中定义的变量,只需像在第一个函数中一样调用它们。我不想在两个函数中都使用.format来重复我自己
如果该字符串在第二个函数中为“{0}”,为什么编译器不将其提取出来,并将其视为与第一个函数中的“{0}”相同。当您通过参数{}传递时,它不会接受它
有没有一种简单的方法?毕竟我想要这样的东西:
subprocess.call(['{0}; {1}; {2}; command {0} {2}'.format(var_0, var_1, var_2)])
现在不行。它打印了这个
{0} {2}
希望这是你的期望
subprocess.call(['{var0}; {var1}; {var2}; command {var0} {var2}'.format(var0=var_0, var1=var_1, var2=var_2)])
使用
命令
连接上一个字符串。在命令中保存的新占位符不需要格式化:
def function_1(command):
s = '{0} ; {1} ; {2}; ' + command
subprocess.call([s.format(var_0, var_1, var_2)])
命令
中的占位符现在用于下一行中的格式设置
要使命令的位置更加灵活,可以将大括号折叠起来,并应用预格式化步骤
def function_1(command):
s = '{{0}} ; {{1}} ; {{2}}; {0}'.format(command)
subprocess.call([s.format(var_0, var_1, var_2)])
演示:
“我想使用在第一个函数中定义的变量,就像在第一个函数中一样简单地调用它们。”你能详细说明一下吗?只是想补充一些还没有很多人实现的东西,就是在Python 3.6中现在允许你使用f'这是一个带有{VAR_NAME_HERE}的字符串“
而不是使用.format
如果该字符串在第二个函数中为“{0}”,为什么编译器不将其拾取,并将其视为与第一个函数中的“{0}”相同。当您通过参数{}传递时,它不会接受它?
>>> '{{0}} {0}'.format('command {0} {2}')
'{0} command {0} {2}'