我正在尝试将参数列表传递给我创建的函数。你知道吗
def pdftotext(params=[], layout='-layout'):
cmd = ['pdftotext', params, '-layout']
return cmd
我这样称呼它:
text = pdftotext(params=['-f', '1', '-l', '2'])
return text
这将产生以下结果:
[
"pdftotext",
[
"-f",
"1",
"-l",
"2"
],
"-",
"-layout"
]
但是,如您所见,在传递params=[]
的地方添加了一个额外的[]
。你知道吗
我尝试将参数转换为字符串,例如:
params = ','.join(params)
但这也不起作用,因为它只是连接每个参数并用逗号分隔。你知道吗
如何将一组不同的参数传递给函数,而不创建一个双列表?你知道吗
您只需使用
*
解压参数列表:最好使用更动态的方法,将
params
更改为varargs参数:现在可以传递任意数量的参数:
如果您无法控制输入,并且希望使用
params
作为列表,您仍然可以执行以下操作:您需要连接列表:
当你看到它在行动时:
首先,请注意将
params
的默认参数定义为一个列表:mutabledefault参数在python中可能会导致难以找到的bug要解决主要问题,可以使用unpacking
相关问题 更多 >
编程相关推荐