Python(14)执行环境
- 可调用对象
- 可执行的对象声明和内建函数
- 执行其他python程序
- 执行其他非python程序
- 结束执行
可调用对象
内建函数
内建函数是用C/C++写的,编译后放入Python解释器,然后把它们作为第一名称空间的一部分加载进系统。
这些函数在–bulitin–模块里,并作为–builtins–模块导入到解释器中
可执行的对象声明和内建函数
callable()
确定一个对象是否可以通过函数操作符来调用。
print callable(dir)
print callable(1)
True
False
compile()
compile()函数允许程序员在运行时刻迅速生成代码对象,然后可以用exec语句或者内建函数eval()来执行这些对象,或者对它们进行求值。
compile()函数提供一次性字节代码预编译,之后调用不需要再编译。
第一种:可求值表达式
eval_code = compile('100 + 200', '', 'eval')
print eval(eval_code)
300
第二种:单一可执行语句
single_code = compile('print "fdssfd"', '', 'single')
exec single_code
fdssfd
eval()
对表达式进行求值
print eval('10 + 20')
30
exec
exec语句执行代码对象或字符串形式的python代码
exec """print 'fdsjf'"""
fdsjf
input()
input()是eval()和raw_input()的组合,等价于eval(raw_input())
执行其他python程序
import
通过导入来执行脚本文件
execfile()
execfile(filename) # 读取脚本内容并执行
执行其他非python程序
os.system()
接收字符串形式的系统命令并执行它。
import os
print os.system('adb devices')
List of devices attached
0
os.popen()
popen是文件对象和system函数的结合
import os
a = os.popen('adb devices')
print a.read()
List of devices attached
os.fork()
能够使用它连续且并行的程序
import os
ret = os.fork() # 产生两个进程
if ret ==0: # 子进程返回的PID值是0
child_suite
else: # 父进程返回的是PID
parent_suite
结束执行
sys.exit()
通过exit可以立即退出程序并返回调用程序。
sys.exitfunc()
默认是不可用的,可以改写它以提供额外的功能。
os._exit()
试用与特定平台
os.kill()
模拟传统的unix函数来发动信号给进程。kill的参数是PID和发送给进程的指令信号。