python中的上下文是什么,特别是**context
是什么意思?它是一种在当前上下文中传递变量的方法吗?代码示例将非常受欢迎。
from mako.template import Template
template = Template('var1 = ${var1}')
for v in range(1, 5):
context = {'var1': v}
print template.render(**context)
答案 0 :(得分:0)
在您的情况下,作为kwarg传递给render
的任何内容都会作为Context传递给您的模板以进行渲染。
上下文表示呈现时页面/模板可用的数据字典。所以当你做类似的事情时
context = {'var1': v}
,您的模板的代码类似于
$(var1)
它会打印v
Mako通过查看Context
解决了这个问题,render
只是通过{{1}}将一个_data包含在传递给它的kwargs中。
答案 1 :(得分:0)
**
运算符在函数调用中出现时,会将字典转换为函数的一组关键字参数。当它出现在函数定义中时,它将一组关键字参数转换为函数到字典中。例如:
>>> d = {'a':0, 'b':1, 'c':2}
>>> def print_my_arguments(**my_arguments):
... print my_arguments
...
>>> print_my_arguments(a=0, b=1, c=2)
{'a': 0, 'c': 2, 'b': 1}
>>> print_my_arguments(**d)
{'a': 0, 'c': 2, 'b': 1}