當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python compile()用法及代碼示例


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

應用範圍:

  1. 如果Python代碼為字符串形式或為AST對象,並且您想將其更改為代碼對象,則可以使用compile()方法。
  2. compile()方法返回的代碼對象以後可以使用以下方法調用:exec()和eval(),它們將執行動態生成的Python代碼。


相關用法


注:本文由純淨天空篩選整理自shubham tyagi 4大神的英文原創作品 Python compile() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。