python 可调用对象
2012-05-02 00:10
281 查看
compile函数允许程序员在运行时刻迅速生成代码对象,然后就可以用exec语句或者内建函数eval 来执行这些对象或者对它们进行求值。一个很重要的观点是:exec和eval者可以执行字符串格式的Python代码。
这也是与c++等静态语言最重要的区别。
compile的三个参数都是必须的,第一参数代表了要编译的Python代码。第二个字符串,虽然是必须的,但通常被置为空串。最后的参数是个字符串,它用来表明代码对象的类型。有三种可能值:
‘eval’ 可求值的表达式,和eval一起使用
‘single’ 单一可执行语句,和exec一起使用
‘exec’ 可执行语句组,和exec一起使用。
1、可求值表达式
eval_code = compile('100 + 200', '', 'eval')
print eval(eval_code)
300
2、单一可执行语句:
single_code = compile('print "Hello world!"', '', 'single')
exec single_code
Hello world!
3、可执行语句组:
exec_code = compile("""
req = input('Count how many numbers? ')
for eachNum in range(req):
print eachNum
""", '', 'exec')
exec exec_code
Count how many numbers? 0
1
2
3
4
5
这也是与c++等静态语言最重要的区别。
compile的三个参数都是必须的,第一参数代表了要编译的Python代码。第二个字符串,虽然是必须的,但通常被置为空串。最后的参数是个字符串,它用来表明代码对象的类型。有三种可能值:
‘eval’ 可求值的表达式,和eval一起使用
‘single’ 单一可执行语句,和exec一起使用
‘exec’ 可执行语句组,和exec一起使用。
1、可求值表达式
eval_code = compile('100 + 200', '', 'eval')
print eval(eval_code)
300
2、单一可执行语句:
single_code = compile('print "Hello world!"', '', 'single')
exec single_code
Hello world!
3、可执行语句组:
exec_code = compile("""
req = input('Count how many numbers? ')
for eachNum in range(req):
print eachNum
""", '', 'exec')
exec exec_code
Count how many numbers? 0
1
2
3
4
5
相关文章推荐
- python 通过字符串调用对象属性或方法的实例讲解
- PYTHON调用WIM对象获取WINDOWS系统的相关信息并打印到EXCEL
- 【Python】使用 boto 调用 S3 对象存储API
- 判断python对象是否可调用的三种方式及其区别
- python基础-命名空间、类_对象调用范围、对象组合
- [python] pexpect.spawn的对象child调用read()时触发TIMEOUT异常
- python cookbook第三版学习笔记十一:类和对象(二)调用父类的方法
- Python 对象特殊方法:(二)对象可调用接口
- 2015/10/9 Python基础(21):可调用和可执行对象
- python __call__ (可调用对象)
- 廖雪峰Python教程1轮还没学明白的(3) -- 面向对象高级编程 -- 定制类 -- __getattr__之链式调用
- 关于Python的PIL工具的Image对象调用show()方法问题。
- QT使用PythonQt调用QT对象
- python入门笔记-类和对象定义及调用
- python面对对象编程----------7:callable(类调用)与context(上下文)
- python无法调用对象的错误
- python中所有可调用对象
- Python的可调用对象
- Python可调用对象
- python同一对象的方法(或函数)没有权利调用该对象的其他方法(或函数)