加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

python内置函数-compile()

发布时间:2021-07-06 06:55:12 所属栏目:大数据 来源: https://www.jb51.cc
导读:python的内置函数 compile()--编译. 这个函数有什么用呢? 一个最简单的例子,就是我们的代码,会被解释器读取,解释器读取后的其实是字符串,然后通过compile编译后,又转换成python可识别的代码.这样python就能执行了.? 这里就有一个例子,是将一段str字符串,通过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!usr/bin/env python#coding:utf-8?? namespace?=?{'name':'wupeiqi','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 wupeiqi,age 18

上述代码解析:

  • 第6行,code是一个字符串,该字符串的内容是一个函数体。
  • 第8行,将code字符串编译成函数 hello
  • 第10行,将函数 hello 添加到namespace字典中(key为hello),同时也将python的所有内置函数添加到namespace字段中(key为__builtins__),如此一来,namespace中的内容好比是一个个的全局变量,即
1 2 3 4 5 name = wupeiqidata = [18,84] ? def?hellocute():????return??"name %s,age %d"?%(name,data[0],)
  • 第12行,执行Hello函数并将返回值复制给result
  • 第14行,输入result
  • 这段代码用的很是巧妙有木有,亮瞎狗眼有木有,居然把字符串变成了函数并且还为该函数提供了全局变量。对于该功能,它就是python的web框架中模板语言部分至关重要的部分,因为在模板处理过程中,首先会读取html文件,然后分割html文件,再然后讲分割的文件组成一个字符串表示的函数,再再然后就是利用上述方法执行字符串表示的函数。

    (编辑:北几岛)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    python的内置函数 compile()--编译.

      这个函数有什么用呢? 一个最简单的例子,就是我们的代码,会被解释器读取,解释器读取后的其实是字符串,然后通过compile编译后,又转换成python可识别的代码.这样python就能执行了.?

      这里就有一个例子,是将一段str字符串,通过compile编译为python代码. 具体如下:?

      参考自http://www.cnblogs.com/wupeiqi/p/4592637.html

    ?

    执行字符串表示的函数,并为该函数提供全局变量

    本篇的内容从题目中就可以看出来,就是为之后剖析tornado模板做准备,也是由于该知识点使用的巧妙,所有就单独用一篇来介绍了。废话不多说,直接上代码:

      推荐文章
        热点阅读