在Python中,compile()函數(shù)可以將字符串形式的代碼編譯為可執(zhí)行的代碼對象。其語法如下:
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
其中:
- source:需要編譯的字符串形式的代碼
- filename:代碼的文件名,如果代碼來自一個文件則為文件名,如果代碼來自字符串則為""
- mode:代碼的模式,通常為"exec"(用于執(zhí)行多行代碼)、“eval”(用于執(zhí)行單行表達(dá)式)、“single”(用于執(zhí)行單行語句)
- flags:編譯標(biāo)志,默認(rèn)為0
- dont_inherit:是否繼承當(dāng)前作用域的標(biāo)志,默認(rèn)為False
- optimize:優(yōu)化級別,默認(rèn)為-1(不進(jìn)行優(yōu)化)
調(diào)用compile()函數(shù)后,會返回編譯后的代碼對象,可以使用exec()函數(shù)來執(zhí)行編譯后的代碼對象。compile()函數(shù)常用于動態(tài)執(zhí)行字符串形式的代碼。