码迷,mamicode.com
首页 > 其他好文 > 详细

Django学习篇(第二部)

时间:2018-04-30 21:07:10      阅读:113      评论:0      收藏:0      [点我收藏+]

标签: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])

 

    •  
       
      第12行,执行Hello函数并将返回值复制给result
    • 第14行,输入result

 

Django学习篇(第二部)

标签:com   准备   str   4行   names   输入   lsp   编译   size   

原文地址:https://www.cnblogs.com/1314520xh/p/8974550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!