Python 带有2个参数的调用崩溃,抱怨需要1个参数

Python 带有2个参数的调用崩溃,抱怨需要1个参数,python,google-app-engine,Python,Google App Engine,为什么对jinja_render()的以下调用会崩溃 def jinja_render(template, **params): t = jinja_env.get_template(template) return t.render(params) class Default(webapp2.RequestHandler): def get(self): jinja_render('welcome.html', {'username': 'test'}

为什么对
jinja_render()
的以下调用会崩溃

def jinja_render(template, **params):
    t = jinja_env.get_template(template)
    return t.render(params)

class Default(webapp2.RequestHandler):
    def get(self):
        jinja_render('welcome.html', {'username': 'test'})
这是跟踪:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__
    rv = self.handle_exception(request, response, e)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__
    rv = self.router.dispatch(request, response)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in default_dispatcher
    return route.handler_adapter(request, response)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__
    return handler.dispatch()
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in dispatch
    return method(*args, **kwargs)
  File "C:\Users\Stefano\workspace\stefanomenci-test\test.py", line 19, in get
    jinja_render('welcome.html', {'username': 'test'})
TypeError: jinja_render() takes exactly 1 argument (2 given)
这意味着,它只接受一个非命名参数,并且所有这些参数都应该是命名参数。要修复此错误,可以像这样调用函数

jinja_render('welcome.html', username = 'test')
当我们这样调用时,
welcome.html
是一个非命名参数,其中is
test
是一个命名参数,参数的名称是
username
。还有另一种说法

jinja_render('welcome.html', **{'username': 'test'})

通过这种方式,我们可以将字典中的值作为命名参数解压到函数中。

可能会重复感谢。以下是与函数参数相关的文档:
jinja_render('welcome.html', **{'username': 'test'})