今天介绍下Python中的eval(),exec,execfile(),compile()。
一、eval()
eval(str)函数将括号中的字符串当成一个有效的Python表达式来计算,并返回计算结果。例如:
二、exec
exec语句将字符串当成有效的Python代码来执行,但不返回任何对象。例如:
三、execfile()
execfile()方法可以执行一个Python文件,在括号里指定一个Python文件路径的字符串即可执行,例如:
execfile("test.py")
四、compile()
当一个字符串被exec,eval(),或execfile()执行时,解释器会先将它们编译为字节代码,然后再执行.这个过程比较耗时,所以如果需要对某段代码执行很多次时,最好还是对该代码先
进行预编译,这样就不需要每次都编译一遍代码,可以有效提高程序的执行效率。
compile()函数可以将一个字符串编译为字节码,函数调用格式如下:compile(str ,filename ,kind )
str是将要被编译的字符串,filename是定义该字符串的文件,kind指定了代码被编译的类型, 'single'指单个语句, 'exec'指多个语句, 'eval'指一个表达式,compile()函数返回一个代码对象,该对象当然也可以被传递给eval()函数和exec语句来执行。例如: