Найти - Пользователи
Полная версия: Почему это работает? Списки Python
Начало » Python для новичков » Почему это работает? Списки Python
1
Jonny2018
class MyNode:
def __init__(self, value = None, next = None):
self.value = value
self.next = next

def add(self, value):

for i in range(value):
self.next = MyNode(i * 5, self)
self = self.next


L = MyNode(5,None)
L.add(3)

Если вывести все элементы (L.value, затем L.next.value, затем L.next.next.value и тд) то дает value: 5, 0, 5, 10 и затем далее по порядку т.к. список циклический.
Но почему это срабатывает ведь в методе add, self при каждой итерации становится self.next и уже не указывает на изначальный узел? Помогите разобраться
Slow
Потому что, кхм, вы нигде не изменяете переменную L (ну, после первого раза, конечно)

Посмотрите на id(L)
и на id(self) во время каждой итерации цикла внутри вашего add
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB