Результат копирования в Python такой же, как у deepcopy

#python #copy

#python #Копировать

Вопрос:

Это код, который я пробовал:

 class van:
    pass
car5 = van()
car5.wheels = 4
print(car5.wheels) #4
car7 = copy.copy(car5)
car5.wheels = 6
print(car5.wheels) #6
print(car7.wheels) #4  the answer should be 6?
 

Комментарии:

1. Почему вы ожидаете, что это будет по-другому?

2. В чем вопрос?

3. ожидается, что окончательная печать будет равна 6

4. deepcopy В названии есть, но не в вопросе ?!

5. почему вы ожидаете, что окончательная печать будет 6 ? Это семантика копии. Глубокая копия и мелкая копия не должны вести себя здесь по-разному.

Ответ №1:

Хорошо, давайте разберем это:

Вы начинаете с создания car5 и проверки его 4 колес

Затем вы копируете все эти данные в car7 (so car7 имеет 4 колеса)

На данный момент машины следующие:

 car5.wheels = 4
car7.wheels = 4
 

Затем вы меняете car5 количество колес на 6

 car5.wheels = 6
car7.wheels = 4
 

Вы не изменили количество колес car7, у него все еще есть 4 колеса