分配带或不带圆括号的多个变量?

时间:2014-02-26 12:04:25

标签: python

这些作业之间有什么区别(和什么)?:

t=("a",5,2.1)
a,b,c = t

t=("a",5,2.1)
(a,b,c) = t

我在多个网络资源中找到了这两个版本,并且不知道第二版中这些大括号是什么。

1 个答案:

答案 0 :(得分:4)

它们完全一样。

您可以使用dis模块进行验证。

>>> t=("a", 5, 2.1)
>>> def first():
    a, b, c = t

>>> def second():
    (a, b, c) = t

>>> dis.dis(first)
  2           0 LOAD_GLOBAL              0 (t)
              3 UNPACK_SEQUENCE          3
              6 STORE_FAST               0 (a)
              9 STORE_FAST               1 (b)
             12 STORE_FAST               2 (c)
             15 LOAD_CONST               0 (None)
             18 RETURN_VALUE        
>>> dis.dis(second)
  2           0 LOAD_GLOBAL              0 (t)
              3 UNPACK_SEQUENCE          3
              6 STORE_FAST               0 (a)
              9 STORE_FAST               1 (b)
             12 STORE_FAST               2 (c)
             15 LOAD_CONST               0 (None)
             18 RETURN_VALUE 

唯一的区别在于可读性。