Создаю узел, который имеет пустой массив. Потом создаю еще один узел и засовываю его в этот массив (все через классы). И первый узел в массиве имеет этот узел, но почему то второй узел имеет в массиве ссылку на самого себя (хотя должен быть пустой массив)
class Node:
def __init__(self, p_type, p_text, p_mas_connections = []):
self.type = p_type
self.text = p_text
self.mas_connections = p_mas_connections
def print_connections(self):
print(self.type)
print(self.text)
print(self.mas_connections)
def change_connections(self, p_position, p_node):
self.mas_connections[p_position] = p_node
def append_connections(self, p_node):
print(f'self.mas_connections {self.mas_connections}')
self.mas_connections.append(p_node)
print(f'self.mas_connections {self.mas_connections}')
def return_selected_node_from_mas_connections(self, p_position):
return self.mas_connections[p_position]
root = Node('key_word', 'program', [Node("identifier", None)])
current = root.return_selected_node_from_mas_connections(0)
current.print_connections()
s = Node('tochka_s_zapyatoy', ';')
s.print_connections()
current.append_connections(s)
s.print_connections()
Вывод
identifier
None
[]
tochka_s_zapyatoy
;
[]
identifier
None
[<__main__.Node object at 0x000001AEDE08C3E0>]
tochka_s_zapyatoy
;
[<__main__.Node object at 0x000001AEDE08C3E0>] # Вот здесь должен быть просто []
В чем я запутался?