(1) compile() 函數
compile() 函數有兩個, 壹個是內建函數,另壹個是模塊py_compile中的.前者生成壹個Compile對象,它只能在代碼中被調用(exec(comp)),不能生成pyc文件。後者必須生成pyc文
件,但不能在交互界面運行它(run 和 exec都不行)。
(2) 生成生成pyc文件
compile(file, cfile=None, dfile=None, doraise=False, optimize=-1)
例子:
compile("test.py")
compile("test.py", "test.pyc")
第壹種方法輸出文件在子目錄__pycache__中,而且文件名是test.python-34.pyc,有兩個點,不好!所以壹定要用第二種格式輸出文件在當前當前目錄。其它選項都缺省就行, -1 表示優化,所以pyo文件也不用去做了。
(3) pyc文件的運行
不能在python的交互界面中運行(run 和 exec都不行)。只能夠在DOS屏幕上運行, 格式為:
python test.pyc [argv]
在程序中調用可以用:
os.system ("python test.pyc ")
(4)內建函數compile()的語法
compile(source, filename, mode[, flags[, dont_inherit]]) -> code
object。
生成壹個code對象。
例子:
yuju = "print('hello')"
hc = compile(yuju, "yuju.err", "single")
exec(hc)
輸出:hello
type(hc) --> code
使用時至少要提供3個參數,source是源代碼,它可以是語句、表達式或代碼文件。filename要求壹個文件名儲存出錯信息,mode是編譯模式,只能使用如下3種:exec, eval, single。