Python exec()用法解析

发布时间:2020-04-25编辑:脚本学堂
本文介绍下,在python编程中exec()的用法,用来执行储存在字符串或文件中的Python语句。有需要的朋友参考学习下。

本节内容:
python exec()用法
 
在python中,exec语句用来执行储存在字符串或文件中的Python语句。
例如,可以在运行时生成一个包含Python代码的字符串,然后,使用exec语句执行这些语句。

例子:
 

复制代码 代码示例:
>>> exec 'print "Hello World"'
Hello World

注意:
例子中exec语句的用法和eval_r(), execfile()是不一样的。
exec是一个语句(就象print或while), 而eval_r()和execfile()则是内建函数.

另外一个例子:
实际上,是要用作域的名称…具体来说,想实现这样一个效果…
有一个类叫做AFunction。
那么运行下述代码:
 

复制代码 代码示例:
import appuifw
d=AFunction("Age=10")
appuifw.note(str(d.Age).decode("utf-8"))
 

后会输出结果10。

解决方法:
 

复制代码 代码示例:
class Afunction:
  def __init__(self,MyString):
    exec("self."+MyString)

exec执行了存储的字符串(self.Age=10);所以结果为d.Age = 10

有关__init__方法:
一个类定义了__init__()方法以后,类实例化时就会自动为新生成的类实例调用调用__init__() 方法。所以在Bag例子中,可以用如下程序生成新的初始化的实例:
    x = Bag()当然,__init__()方法可以有自变量,这样可以实现更大的灵活性。在这样的情况下,类实例化时指定的自变量被传递给__init__()方法。例如:
 

复制代码 代码示例:
>>> class Complex:...    
def __init__(self, realpart, imagpart):...        
self.r = realpart...        
self.i = imagpart...
>>> x = Complex(3.0,-4.5)

>>> x.r, x.i(3.0, -4.5)方法可以和普通函数一样地引用全局名字。方法的全局作用域是包含类定义的模块。(注意,类本身并不被用作全局作用域!)虽然很少需要在方法中使用全局数据,全局作用域还是有许多合法的用途:

例如,导入全局作用域的函数和模块可以被方法使用,在同一模块中定义的函数和方法也可以被方法使用。

希望以上有关python中exec()语句的用法分析,可以有助于大家理解并掌握python exec()的用法。