使用^{}模块检查非常容易:>>> import dis
>>> dis.dis(compile('a,b,c=1,2,3','','exec'))
1 0 LOAD_CONST 4 ((1, 2, 3))
3 UNPACK_SEQUENCE 3
6 STORE_NAME 0 (a)
9 STORE_NAME 1 (b)
12 STORE_NAME 2 (c)
15 LOAD_CONST 3 (None)
18 RETURN_VALUE
>>> dis.dis(compile('(a,b,c)=(1,2,3)','','exec'))
1 0 LOAD_CONST 4 ((1, 2, 3))
3 UNPACK_SEQUENCE 3
6 STORE_NAME 0 (a)
9 STORE_NAME 1 (b)
12 STORE_NAME 2 (c)
15 LOAD_CONST 3 (None)
18 RETURN_VALUE
>>>
看到了吗?这些完全冗余的括号使得生成和执行的字节码完全不同——比如说,a+b和{}将生成和执行完全相同的字节码。所以,如果你想添加多余的括号,那就把你自己打倒吧——读你代码的人可能不喜欢它们,但那些只是执行它的人根本不会注意到。只是,为什么只停留在两对多余的括号里呢?你看
^{pr2}$
六对冗余括号(或任何数字,真的)仍然产生完全相同的代码。一旦你留下明显的最少数量的冗余括号(一点都没有:它们毕竟是多余的;-),你到底在哪里停止?-)为什么呢,当“免费”再加一双的时候。。。或者两个。。。还是三个。。。?-)在