Python中x = y = z的内幕是什么?

Iam*_*hed 1 python

我在python中遇到过类似的东西,不知道如何理解这段代码:

somedict['some_key'] = some_val = form.some_field.data
Run Code Online (Sandbox Code Playgroud)

dan*_*n04 5

x = y = z相当于x = z; y = z(是,按此顺序),除了z仅评估一次.

或者,就Python"编译"代码而言:

>>> compiled_code = compile("x = y = z", filename='con', mode='single')
>>> import dis
>>> dis.dis(compiled_code)
  1           0 LOAD_NAME                0 (z)
              2 DUP_TOP
              4 STORE_NAME               1 (x)
              6 STORE_NAME               2 (y)
              8 LOAD_CONST               0 (None)
             10 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)