1. 程式人生 > >Django學習篇(第二部)

Django學習篇(第二部)

adding 學習 AD odi 時也 hello ret order pytho

執行字符串表示的函數,並為該函數提供全局變量

本篇的內容從題目中就可以看出來,就是為之後剖析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學習篇(第二部)