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


Python compile()用法及代碼示例


compile() 方法從源(普通字符串、字節字符串或 AST 對象)返回 Python 代碼對象。

用法:

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

compile() 方法用於如果 Python 代碼是字符串形式或者是 AST 對象,並且您想將其更改為代碼對象。

compile() 方法返回的代碼對象稍後可以使用以下方法調用:exec()eval(),它們將執行動態生成的 Python 代碼。

參數:

  • source - 普通字符串、字節字符串或 AST 對象
  • filename - 從中讀取代碼的文件。如果不是從文件中讀取的,您可以自己命名
  • mode- 任何一個exec或者eval或者single.
    • eval - 隻接受一個表達式。
    • exec - 它可以采用包含 Python 語句、類和函數等的代碼塊。
    • single - 如果它由單個交互式語句組成
  • flags(可選)和dont_inherit(可選) - 控製哪些未來語句會影響源代碼的編譯。默認值:0
  • optimize(可選)- 編譯器的優化級別。默認值 -1。

返回:

compile() 方法返回一個 Python 代碼對象。

示例:compile() 如何工作?

codeInString = 'a = 5\nb=6\nsum=a+b\nprint("sum =",sum)'
codeObejct = compile(codeInString, 'sumstring', 'exec')

exec(codeObejct)

輸出

sum = 11

這裏,source 是普通字符串形式。 filenamesumstring 。並且,exec 模式稍後允許使用exec() 方法。

compile()方法將字符串轉換為 Python 代碼對象。然後使用執行代碼對象exec()方法。

相關用法


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