Python __iter__ и __repr__, что они делают?Python

Программы на Python
Anonymous
Python __iter__ и __repr__, что они делают?

Сообщение Anonymous »

Сейчас я работаю над LinkedList, у меня есть следующий код, и я не понимаю, что именно делают __iter__ и __repr__?

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

class Node:
def __init__(self, value):
self.value = value
self.next = None

class LinkedList:
def __init__(self):
self.head = None

def append(self, value):
if self.head is None:
self.head = Node(value)
return

node = self.head
while node.next:
node = node.next

node.next = Node(value)

def __iter__(self):
node = self.head
while node:
yield node.value
node = node.next

def __repr__(self):
return str([v for v in self])
Здесь я создаю LinkedList и добавляю значения в конец моего списка.

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

llist = LinkedList()
for value in [4,2,5,1,-3,0]:
llist.append(value)
Если я распечатаю список print(llist), я получу [4, 2, 5, 1, -3, 0]

Думаю, это исходит от __iter__ и __repr__. Чего я не понимаю, так это когда запускаются мои __iter__ и __repr__ и что запускается первым? Как я могу распечатать объекты вне моего класса?

Подробнее здесь: https://stackoverflow.com/questions/572 ... they-doing

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