#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 колеса