- >>> scope={}
- >>> exec 'x=2' in scope
- >>> eval('x*x',scope)
- 4
pass语句代表程序什么事情都不用做。
del删除:python会删除那些不在使用的对象(因为使用者不会再通过任何变量或者数据结构来引用它们)
- >>> x=1
- >>> y=x
- >>> x,y
- (1, 1)
- >>> del x
- >>> x
- Traceback (most recent call last):
- File "", line 1, in <module>
- x
- NameError: name 'x' is not defined
- >>> y
- 1
x和y都指向同一个列表,删除x并不会影响y,原因删除的只是名称,而不是列表本身值。事实上python是没哟办法删除值的。某个值不再使用的时候,python解释器会负责内存的回收。
使用exec和eval执行和求职字符串
执行一个字符串的语句是exec:
注意名字与函数不要混淆一起,如果有的话使用命令空间。
eval用于求值类似于exec的内建函数,exec语句会执行一系列的python语句,而eval会计算python表达式,并返回结果值。
- >>> exec "print 'hello world'"
- hello world
- >>> from math import sqrt
- >>> scope={}
- >>> exec 'sqrt=1' in scope
- >>> sqrt(4)
- 2.0
- >>> scope['sqrt']
- 1
execfile:经常在碰到这个函数,查了一下帮助文档:
- >>> help('execfile')
- Help on built-in function execfile in module __builtin__:
- execfile(...)
- execfile(filename[, globals[, locals]])
-
- Read and execute a Python script from a file.
- The globals and locals are dictionaries, defaulting to the current
- globals and locals. If only globals is given, locals defaults to it.
>>> execfile(r'c:\f.py')
hello world
>>>
阅读(694) | 评论(0) | 转发(0) |