>>> import code
>>>
>>> interpreter = code.InteractiveInterpreter()
>>> myCode = code.compile_command('if True: print("IT\'S ONE!!")')
>>> interpreter.runcode(myCode)
TypeError: exec: arg 1 must be a string, file, or code object
很明显,interpreter.runcode
接受字符串或代码。
但是myCode
没有。
>>> myCode
>>>
根据code.compile_command
文件:
... 如果命令完整且有效,则返回一个代码对象(与 compile(source, filename, symbol) 相同);如果命令不完整,则无;如果命令完整并包含语法错误,则引发 SyntaxError,如果命令包含无效文字,则引发 OverflowError 或 ValueError。
如果您将字符串传递给interpreter.runcode
,它可以工作。
>>> interpreter.runcode('if True: print("IT\'S ONE!!")')
IT'S ONE!!