![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Блиц из трёх вопросов.
-
Код на Питоне:
a = ([1], 2)
a[0] = [3]Чему теперь равно a?
-
Код на Питоне:
a = ([1], 2)
b = a[0]
b += [3]Чему теперь равно a?
-
Код на Питоне:
a = ([1], 2)
a[0] += [3]Чему теперь равно a?
P. S. x += y
в Питоне это x = x.__iadd__(y)
, x = x.__add__(y)
или x = y.__radd__(x)
, в зависимости от того, что определено и подходит. Из этого определения становится ясным на первый взгляд странный результат.
no subject
Date: 2012-04-06 11:26 am (UTC)no subject
Date: 2012-04-06 12:30 pm (UTC)no subject
Date: 2012-04-06 07:41 pm (UTC)no subject
Date: 2012-04-06 08:29 pm (UTC)no subject
Date: 2012-04-06 10:21 pm (UTC)>>> a = [1]
>>>id(a)
19859496
>>> a += [3]
>>> id(a)
19859496
no subject
Date: 2012-04-07 05:50 am (UTC)Но gotcha не в этом.
x += y в Питоне это x = x.__iadd__(y), x = x.__add__(y) или x = y.__radd__(x). И такая схема fallbacks удобнее C++, где нужно определять всё.
Из этого определения и становится ясным результат.