Задали задачу про бесконечно вложенный словарь в Python. Куда копать чтобы дать ответ?
На днях разбирался с темой "Передача данных по значению и по ссылке" и мне подкинули задачу.
Дали 3 комманды.
1. a = {'k':'v'}
2. a['z'] = a
3. a['z']['k'] = 1
Выполнять их надо по-порядку.
И дали 3 вопроса:
1. С чем мы работаем в строке 2?
2. Почему память не вырастет во 2 строке?
3. Почему вырастет в 3?
На первый вопрос ответ я понял - работаем с ссылочным типом данных.
Вижу что создается рекурсия. Занятно)
Но вопрос с памятью для меня совсем не ясен.
Что мне стоит просмотреть или прочесть чтобы уловить суть и иметь возможность ответить?
Еще можно вспомнить, что целые числа 0-255 создаются заранее и используются повторно, т. е. в 3й строке будет передана ссылка на существующий объект, представляющий число 1.