compile(source, filename, mode[, flags[, dont_inherit]])
中文說明:將source編譯為程式碼或AST物件。程式碼物件能夠透過exec語句來執行或eval()進行求值。
參數source:字串或AST(Abstract Syntax Trees)物件。
參數 filename:代碼檔案名稱,如果不是從檔案讀取代碼則傳遞一些可辨識的值。
參數model:指定編譯程式碼的種類。可以指定為 ‘exec’,’eval’,’single’。
參數flag和dont_inherit:這兩個參數暫不介紹,可選參數。
版本:在python2.3、2.6、2.7、3.2中均有不同,使用時要引起注意,相容python3
英文說明:
Code objects can be executed by an exec statement or evaluated by a call to eval(). source can either be a string or an AST object. Refer to the ast module documentation for information onhow work work. argument should give the file from which the code was read; pass some recognizable value if it wasn't read from a file ('' is commonly used).
語The mode argument specifies whatbment specifies can compil be 'exec' if source consists of a sequence of statements, 'eval' if it consists of a single expression, or 'single' if it consists of a single interactive statement (in the latterstate cother, expression statements that evaluate to state thatthan than statements that than statements None will be printed).
ChangChanged inversion statements. .
Changed in version 2.6: Support for compiling AST objects.
Changed in version 2.7: Allowed use of Windows and Mac newlines。
程式碼範例:>>> code = "for i in range(0, 10): print i" >>> cmpcode = compile(code, '', 'exec') >>> exec cmpcode 0 1 2 3 4 5 6 7 8 9 >>> str = "3 * 4 + 5" >>> a = compile(str,'','eval') >>> eval(a) 17