Compile():考慮一種情況,我們在字符串中有一段Python代碼,我們希望對其進行編譯,以便以後可以在需要時運行它。編譯方法可以完成此任務。它以源代碼作為輸入,並返回準備執行的代碼對象。
用法:
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
參數:
- Source-它可以是普通字符串,字節字符串或AST對象
- Filename-這是從中讀取代碼的文件。如果未從文件中讀取文件,則可以自己命名。
- Mode-模式可以是exec,eval或single。
a.eval-如果源是單個表達式。
b.exec-可能需要一段包含Python語句,類和函數等的代碼。
c.single-如果由單個交互式語句組成,則使用 - Flags(可選)和dont_inherit(可選)-默認值= 0。注意哪些將來的語句會影響源代碼的編譯。
Optimize (optional)-告知編譯器的優化級別。默認值-1。
# Python code to demonstrate working of compile().
# Creating sample sourcecode to multiply two variables
# x and y.
srcCode = 'x = 10\ny = 20\nmul = x * y\nprint("mul =", mul)'
# Converting above source code to an executable
execCode = compile(srcCode, 'mulstring', 'exec')
# Running the executable code.
exec(execCode)
輸出:
mul = 200
# Another Python code to demonstrate working of compile().
x = 50
# Note eval is used for single statement
a = compile('x', 'test', 'single')
exec(a)
輸出:
50
應用範圍:
- 如果Python代碼為字符串形式或為AST對象,並且您想將其更改為代碼對象,則可以使用compile()方法。
- compile()方法返回的代碼對象以後可以使用以下方法調用:exec()和eval(),它們將執行動態生成的Python代碼。
相關用法
- Python map()用法及代碼示例
- Python ord()用法及代碼示例
- Python dir()用法及代碼示例
- Python cmp()用法及代碼示例
- Python id()用法及代碼示例
- Python int()用法及代碼示例
- Python tell()用法及代碼示例
- Python now()用法及代碼示例
- Python hex()用法及代碼示例
- Python sum()用法及代碼示例
- Python oct()用法及代碼示例
注:本文由純淨天空篩選整理自shubham tyagi 4大神的英文原創作品 Python compile() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。