Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-.format在.format中_Python_Format - Fatal编程技术网

Python-.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}') 我想使用在第一个函数中定义的变量,只需像在第一个函数中一样调用它们。我不想在两个函数

我真的很喜欢使用.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}')
我想使用在第一个函数中定义的变量,只需像在第一个函数中一样调用它们。我不想在两个函数中都使用.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}'