这是 compile() 内置函数的第三个参数 mode 的可选值,决定“把源码编译成什么类型的代码对象”:
mode 含义 典型用途
'single' 单条交互式语句 REPL 里敲的一行,如 >>> x = 1
'eval' 单个表达式 eval('2 + 3')
'exec' 完整代码块 / 模块 exec(open('script.py').read())
code1 = compile('x = 1', '', 'single') # 单条语句
code2 = compile('2 + 3', '', 'eval') # 纯表达式
一句话:
single → 编译成 交互式语句
eval → 编译成 表达式
python非法的是
x=y=z=1 x=(y=z+1) x,y=y,x x+=y哪个不合法
x=(y=z+1)
是非法的——Python 里 = 是语句,不是表达式,不能放在右边当值用。
x=1,1 就是一个最简单的表达式
= 左边必须是变量名(或解包列表/元组等),右边是表达式。