python-动态特性学习

本文详细介绍了Python中用于动态执行代码的几种方式:exec、eval、execfile及compile函数的用法。通过实例展示了如何利用这些函数执行存储在字符串中的Python代码、表达式或文件,并解释了它们如何在不同的全局和局部名字空间中工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python是一门动态语言,可以动态的创建类。


这里主要学习exce,eval,execfile,complie.

exce----是跟while,for一样的python语句

eval,excefile,complie 是python的内建函数


1、exce 可以执行存储在字符串中的python代码

>>> exec 'print "Hello World"'
Hello World

2、eval可以执行存储在字符串中的python表达式

>>>eval '1+2'

>>>3

3、execfile(filename [,globals [,locals ]])函数可以用来执行一个文件,看下面的例子:

>>> execfile(r'c:/test.py')
hello world!
>>>

默认的,eval_r(),exec,execfile()所运行的代码都位于当前的名字空间中. eval_r(), exec 和 execfile()函数也可以接受一个或两个可选字典参数作为代码执行的全局名字空间和局部名字空间. 例如:

globals = {      'x': 7, 
           'y': 10, 
          'birds': ['Parrot', 'Swallow', 'Albatross'] 
         } 
locals = { } 
# 将上边的字典作为全局和局部名称空间 
a = eval("3*x + 4*y", globals, locals) 
exec "for b in birds: print b" in globals, locals # 注意这里的语法 
10 execfile("foo.py", globals, locals)

4、compile(str ,filename ,kind )函数将一个字符串编译为字节代码,

str是将要被编译的字符串, 

filename是定义该字符串变量的文件,

kind参数指定了代码被编译的类型-- 'single'指单个语句, 'exec'指多个语句, 'eval'指一个表达式. 

cmpile()函数返回一个代码对象,该对象当然也可以被传递给eval()函数和exec语句来执行




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值