由于 PLY 從文檔字串中獲取信息,語法解析和詞法分析信息必須通過正常模式下的 Python 解釋器得到(不帶 有-O 或者 -OO 選項)。不過,如果你像這樣指定 optimize 模式:
lex.lex(optimize=1)
yacc.yacc(optimize=1)
PLY 可以在下次執(zhí)行,在 Python 的優(yōu)化模式下執(zhí)行。但你必須確保第一次執(zhí)行是在 Python 的正常模式下進行,一旦詞法分析表和語法分析表生成一次后,在 Python 優(yōu)化模式下執(zhí)行,PLY 會使用生成好的分析表而不再需要文檔字串。