eval函数
【转】
ev
同样地, exec语句将字符串str当成有效Python代码来执行.提供给exec的代码的名称空间和exec语句的名称空间相同.
最后,execfile(filename [,globals [,locals ]])函数可以用来执行一个文件,看下面的例子:
>>> ev
7
>>> exec 'a=100'
>>> a
100
>>> execfile(r'c:\test.py')
hello,world!
>>>
默认的,ev
1 globals = {'x': 7,
2 'y': 10,
3 'birds': ['Parrot', 'Swallow', 'Albatross']
4 }
5 locals = { }
6
7 # 将上边的字典作为全局和局部名称空间
8 a = ev
9 exec "for b in birds: print b" in globals, locals # 注意这里的语法
10 execfile("foo.py", globals, locals)
如果你省略了一个或者两个名称空间参数,那么当前的全局和局部名称空间就被使用.如果一个函数体内嵌嵌 套函数或lambda匿名函数时,同时又在函数主体中使用exec或execfile()函数时, 由于牵到嵌套作用域,会引发一个SyntaxError异常.(此段原文:If you omit on
在Python2.4中未发现可以引起异常
注意例子中exec语句的用法和ev
exec(str) 这种形式也被接受,但是它没有返回值。
当一个字符串被exec,ev
compile(str ,filename ,kind )函数将一个字符串编译为字节代码, str是将要被编译的字符串, filename是定义该字符串变量的文件,kind参数指定了代码被编译的类型-- 'single'指单个语句, 'exec'指多个语句, 'ev
1 str = "for i in range(0,10): print i"
2 c = compile(str,'','exec') # 编译为字节代码对象
3 exec c # 执行
4
5 str2 = "3*x + 4*y"
6 c2 = compile(str2, '', 'ev
7 result = ev