У меня есть узел класса что-то вроде этого.Это типичный объект узла для графа.
class Node(object):
def __init__(self, data, edges = []):
super(Node, self).__init__()
self.data = data
self.edges = edges
self.visited = False
def addEdge(self, *args):
print(self)
self.edges.extend(args)
print(self.edges)
Я создаю два таких объекта:
one = Node(1)
two = Node(2)
Далее я добавляю указатель two
к one
, используя addEdge
метод, определенный выше -
one.addEdge(two)
Теперь приходит удивительный момент.Когда я проверяю значения one.edges
и two.edges
, я получаю это -
one.edges [<<strong> main .Node объект в 0x109ed3e50>]
two.edges [<<strong> main .Node объект в 0x109ed3e50>].
Если вы видите, что оба объекта получили значение.Я довольно озадачен этим и не знаю, почему это происходит.Так ведет себя питон?Если да, то можете ли вы объяснить это поведение?