a += b并不等同于a = a + b

19 浏览
0 Comments

a += b并不等同于a = a + b

我今天发现了Python语言的一个有趣的“特性”,让我遇到了很多麻烦。

这是怎么回事?我以为这两个语句是等价的!更糟糕的是,这是我花了很多时间来调试的代码。

WTF!我在我的代码中有列表和字典,想知道我怎么把字典的键附加到列表中而从未调用.keys()。事实证明,就是这样。

我以为这两个语句是等价的。即使忽略这一点,我也可以理解将字符串附加到列表的方式(因为字符串只是字符数组),但字典呢?也许如果它附加了一个(键,值)元组的列表,但仅仅抓取键来添加到列表中似乎完全是武断的。

有人知道背后的逻辑是什么吗?

0