Измените и/или удалите экземпляры класса, ссылаясь на них через переменные [дубликат]Python

Программы на Python
Anonymous
Измените и/или удалите экземпляры класса, ссылаясь на них через переменные [дубликат]

Сообщение Anonymous »

Извините, если это глупый вопрос, но мне кажется, что мне не хватает некоторых важных знаний о том, как работают классы
в Python.
Скажем, например, что я Я заново изобретаю велосипед, реализуя структуру данных списка. Затем я бы создал класс Node, содержащий данные и указатель на следующий узел. У меня также был бы класс List, который содержал бы некоторые методы для списка, такие как Append, Remove и т. д.
Теперь я борюсь с тем, как я могу манипулировать экземплярами этих узлов списка.
Мой класс узла такой:

Код: Выделить всё

class Node:
def __init__(self,next,data)
self.next = next
self.data = data
Если я хочу найти последний узел списка, я бы выглядел примерно так

Код: Выделить всё

current_node = list.header
while current_node.next != None:
last_node = current_node
Теперь я хочу что-то сделать с выбранным последним_узлом, я бы сделал что-то вроде

Код: Выделить всё

last_node.data = "some data"
#or
del(last_node)
Теперь, действительно ли какие-либо действия с переменной «last_node» изменяют исходный экземпляр класса, или я создал новый узел?
Если я хочу сделать что-то вроде

Код: Выделить всё

that_node = this_node.next
del(that_node)
Удаляет ли он узел после «this_node» или этот код бессмысленен? В некоторых ситуациях я считаю необходимым назначить новую переменную, например, если я перебираю несколько узлов и «this_node» может меняться.
Надеюсь, это имеет какой-то смысл !

Подробнее здесь: https://stackoverflow.com/questions/786 ... -variables

Вернуться в «Python»