我在python中遇到了类似这样的事情,不确定如何理解这段代码:
somedict['some_key'] = some_val = form.some_field.data
发布于 2018-08-07 06:27:32
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
发布于 2018-08-07 06:19:32
somedict['some_key'] = some_val = form.some_field.data
这与以下内容相同:
some_val = form.some_field.data
somedict['some_key'] = some_val
顺序通常并不重要,因为只有右边的可以是不可分配的东西,比如方法调用、lambda调用、关键字等。
我在实践中看到的一些地方是这样的:
new, assigned, complete = all_modes = "new assigned complete".split()
https://stackoverflow.com/questions/51716329
复制相似问题