Python 具有多个参数的函数,一些已知,一些未知

Python Function with multiple arugements, some known, some unknown

我试图在网上搜索这个问题的答案,但我不确定我的措辞是否正确,但我似乎找不到我的答案。我想做的是编写一个函数来处理一些参数,其中一些参数是已知值(input/output 文件),但一些参数数量未知(jinja 值传递)。我理解 *args 的概念,但我认为这在这种情况下行不通。

这是我想从事的工作:

from jinja2 import Template

def myTemplate(inputFile, outputFile *args):
    with open(inputFile, 'r') as r:
        render = Template(r.read())
   
    outputFile = render.render(*args)

最后一行可以是一个字典、两个或三个单个变量等。我在脚本中多次执行此操作(没有专用函数),但这是最后一部分让我无法编写它作为一个函数,然后调用它。感觉编码很草率,没有围绕它包装一个函数,因为除了最后一行之外,代码是相同的。

解决方案只是正确使用 **kwargs...

from jinja2 import Template

def myTemplate(inputFile, outputFile **kwargs):
    with open(inputFile, 'r') as r:
        render = Template(r.read())
   
    outputFile = render.render(**kwargs)

有了这个,您可以根据需要将任意数量的变量传递给 jinja 的渲染引擎。