【问题标题】:What is the difference between x = y = 0 and x = 0 y = 0 in Python [duplicate]Python中x = y = 0和x = 0 y = 0有什么区别[重复]
【发布时间】:2021-04-15 06:05:07
【问题描述】:

在python中,有什么区别

x = y = 0

和

x = 0
y = 0

【问题讨论】:

  • 其中一个是单行,另一个是两行。这就是区别。在其他情况下(例如,当分配像列表这样的可变对象时)会有所不同。
  • 即使对于不可变对象,它也不会是相同的东西(即x is y 可能会为后者返回False)。从技术上讲,确切的等价物是y = 0,然后是x = y。

标签: python variable-assignment


【解决方案1】:

IIRC,不可变类型(例如示例中的 int)没有区别。但是在对可变对象进行链式赋值时要注意潜在的问题:

>>> foo = bar = []
>>> print(id(foo) == id(bar))

Out: True

>>> foo.append(1)
>>> bar

Out: [1]

所以在这里您无意中修改了两个列表,因为它们都引用了同一组内存地址。

编辑: 实际上,您的示例有所不同。单行链式分配更紧凑,但可能变得不太清晰,所以我个人几乎从不使用这些。

【讨论】:

    猜你喜欢
    • 2014-11-09
    • 2014-11-06
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 2015-11-16
    相关资源
    最近更新 更多