标签:com 准备 str 4行 names 输入 lsp 编译 size
本篇的内容从题目中就可以看出来,就是为之后剖析tornado模板做准备,
#!usr/bin/env python #coding:utf-8 namespace = {‘name‘:‘teddy‘,‘data‘:[25,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 teddy,age 25
上述代码解析:
第6行,code是一个字符串,该字符串的内容是一个函数体。
第8行,将code字符串编译成函数 hello
第10行,将函数 hello 添加到namespace字典中(key为hello),同时也将python的所有内置函数添加到namespace字段中(key为__builtins__),
如此一来,namespace中的内容好比是一个个的全局变量,即5
name = wupeiqi data = [18,73,84] def hellocute(): return "name %s ,age %d" %(name,data[0])
|
标签:com 准备 str 4行 names 输入 lsp 编译 size
原文地址:https://www.cnblogs.com/1314520xh/p/8974550.html