D
dis0rdered_
@it_dis0rdered10 подп.
20просмотров
22 марта 2026 г.
Score: 22
Нашел забавное. Сложение в tuple не атомарная операция. Если к list в tuple добавить элемент, то выведется ошибка, но сложение сработает >>> x = ([],) >>> x[0] += [1] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> x ([1],) # Все потому, что эту операцию можно представить таким образом. Благодаря мутабельности списков первое выражение изменит список, а второе уже сломает tuple. result = a_list.iadd([1]) a_list = result # Разложение на байт-код также показывает, что тут две операции def add(): x[0] += [1] import dis dis.dis(add) 34 BINARY_OP 11 (+=) 42 STORE_SUBSCR
20
просмотров
696
символов
Нет
эмодзи
Нет
медиа

Другие посты @it_dis0rdered

Все посты канала →
Нашел забавное. Сложение в tuple не атомарная операция. Если — @it_dis0rdered | PostSniper