Python Library在实际操作中具有十分强大的功能


以下的文章是通过Python Library: Exec & Compile的相关实际操作代码的介绍来介绍Python Library在实际操作的相关步骤,以下是文章内容的具体介绍,希望你在浏览完下面的文章会有所收获。

直接运行代码字符串也是动态语言的一个重要特征。虽然在 .NET/C# 里也可通过 CodeDom 实现类似的功能,但远没 Python 这么方便自由。

  1. >>> code = """  
  2. def test(s):  
  3. print "test:", s  
  4. a = 123 
  5. """  
  6. >>> exec code  
  7. >>> a  
  8. 123  
  9. >>> test("abc")  
  10. test: abc   

内置函数里还有 eval() 和 execfile() 都是用来做类似事情的。exec 关键字执行多行代码片段,eval() 函数通常用来执行一条包含返回值的表达式,而 execfile 自然是用来执行源码文件了。

  1. >>> a = 10 
  2. >>> x = eval("a + 3")  
  3. >>> x  
  4. 13   

eval() 和 execfile() 都有 "globals, locals" 参数,用于传递环境变量,默认或显式设置为 None 时都直接使用 globals() 和 locals() 获取当前作用域的数据。

  1. >>> x = eval("a + b", {}, {}) 

传递空值,使其无法获取本地信息

  1. Traceback (most recent call last):  
  2. File "<pyshell#21>", line 1, in <module> 
  3. x = eval("a + b", {}, {})  
  4. File "<string>", line 1, in <module> 
  5. NameError: name 'a' is not defined  
  6. >>> x = eval("a + b", {}, { "a":123, "b":2})   

显式传递环境信息

  1. >>> x  
  2. 125  

以上文章的内容是对Python Library的实际相关应用操作过程中操作的部分介绍。

相关内容

    暂无相关文章

评论关闭