Область памяти, заданная функцией repr()
, является адресом в виртуальной памяти, а не адресом в глобальной памяти системы. Каждый из ваших процессов, возвращаемых fork (), имеет свое собственное пространство виртуальной памяти, которое полностью отличается от других процессов. Они не разделяют память.
Редактировать: Согласно комментариям Брайана ниже, технически они разделяют память до тех пор, пока ядро не решит их разделить (когда ребенок записывает часть общей памяти). Поведение, однако, фактически то же самое.
Структура ваших программ одинакова, поэтому python использует одну и ту же область виртуальной памяти в отдельном хранилище виртуальной памяти каждого процесса для каждого идентичного объекта для каждого дочернего элемента.
Если вы на самом деле измените содержимое объектов и протестируете их, вы увидите, что, хотя область памяти выглядит одинаково, эти два объекта совершенно разные, поскольку они принадлежат двум разным процессам. В действительности вы не можете изменить одно из другого (без какого-либо межпроцессного взаимодействия для посредничества).