Size: a a a

Dev Seagulls Chat

2020 May 04

О

Олдфаг in Dev Seagulls Chat
как сказал бы Шрек, that's a good question
источник

ЗА

Заур Ашурбеков... in Dev Seagulls Chat
Saeed
В случае, если ты это делаешь в функции, любое присвоение создает новую переменную, кроме команд +=, *= и т.д., т.к. они, хоть и выглядят похоже, но реализованы иначе
Но результат от этого не должен ведь меняться
источник

S

Saeed in Dev Seagulls Chat
Saeed
В случае, если ты это делаешь в функции, любое присвоение создает новую переменную, кроме команд +=, *= и т.д., т.к. они, хоть и выглядят похоже, но реализованы иначе
И если в x хранится коллекция, то внутри функции запись
x = x  + y
где х и у это списки, создаст новый локальный список х
источник

S

Saeed in Dev Seagulls Chat
А запись
х += у
создавать список не будет, а просто дополнит старый список
источник

О

Олдфаг in Dev Seagulls Chat
эээ
а если x это элемент коллекции? могу сделать скрины, у меня там ересь какая-то
источник

I

Ibrahim in Dev Seagulls Chat
Saeed
И если в x хранится коллекция, то внутри функции запись
x = x  + y
где х и у это списки, создаст новый локальный список х
Но здесь же после нового списка старый х удалится
источник

A

Abdu in Dev Seagulls Chat
вы шо
источник

I

Ibrahim in Dev Seagulls Chat
Saeed
А запись
х += у
создавать список не будет, а просто дополнит старый список
Так же и тут, нет?
источник

S

Saeed in Dev Seagulls Chat
Ibrahim
Но здесь же после нового списка старый х удалится
Всё верно, т.е. изменения не сохранятся
источник

A

Abdu in Dev Seagulls Chat
у него просто последовательность действий другая
источник

A

Abdu in Dev Seagulls Chat
в случае =* сначала деление
источник

A

Abdu in Dev Seagulls Chat
во втором случае умножение
источник

S

Saeed in Dev Seagulls Chat
Ibrahim
Так же и тут, нет?
Нет, во втором случае х, который берется из верхней области видимости, сохранит изменения
источник

A

Abdu in Dev Seagulls Chat
хотя какая разница
источник

A

Abdu in Dev Seagulls Chat
источник

I

Ibrahim in Dev Seagulls Chat
Разве интерпретатор не переделывает все вот так:

x += a+b --> x = x + (a+b)
источник

A

Abdu in Dev Seagulls Chat
Ibrahim
Разве интерпретатор не переделывает все вот так:

x += a+b --> x = x + (a+b)
сначала вычисляет то что справа
источник

A

Abdu in Dev Seagulls Chat
и потом уже преобразует
источник

A

Abdu in Dev Seagulls Chat
вроде
источник

S

Saeed in Dev Seagulls Chat
Ibrahim
Разве интерпретатор не переделывает все вот так:

x += a+b --> x = x + (a+b)
Нет, в питоне это разные команды. И присвоение всегда создает ссылку на новый объект, а комбинированная запись всегда сохраняет ссылку на исходный объект
источник