本篇的内容从题目中就能够看出来,就是为以后剖析tornado模板作准备,也是因为该知识点使用的巧妙,全部就单独用一篇来介绍了。废话很少说,直接上代码:html
#!usr/bin/env python #coding:utf-8 namespace = {'name':'xs','data':[18,73,84]} code = '''def hellocute():return "name %s ,age %d" %(name,data[0],) ''' func = compile(code, '<string>', "exec") exec func in namespace result = namespace['hellocute']() print result
此段代码的执行结果是:name xs,age 18python
上述代码解析:web
name = xs data = [18,73,84] def hellocute(): return "name %s ,age %d" %(name,data[0],)
这段代码用的非常巧妙有木有,亮瞎狗眼有木有,竟然把字符串变成了函数而且还为该函数提供了全局变量。对于该功能,它就是python的web框架中模板语言部分相当重要的部分,由于在模板处理过程当中,首先会读取html文件,而后分割html文件,再而后讲分割的文件组成一个字符串表示的函数,再再而后就是利用上述方法执行字符串表示的函数。框架