@leham1

Почему меняется переменная?

Почему "8" добавилась в self.y? Я ведь создал новую переменную y2 и добавил в нее "8".
a = ['1', '2', '3']
class Test:
    def __init__(self, y):
        self.y = y

    def r(self):
        y2 = self.y
        y2.append('8')
        return y2

    def t(self):
        return self.y

print(Test(a).r())
print(Test(a).t())

выводит:
['1', '2', '3', '8']
['1', '2', '3', '8']
  • Вопрос задан
  • 81 просмотр
Решения вопроса 2
@molekulyarniy
через y и y2 вы ссылаетесь на один и тот же список
y2 = self.y[:]
Ответ написан
Ты создал y2 и поместил в него ссылку на y. Чтобы скопировать содержимое списка, а не ссылку на него, нужно использовать copy https://pythonworld.ru/moduli/modul-copy.html

P.S. Изучи основы Python!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы