начинаю изучать питон, так что извините, если это элементарно.
Я хочу использовать __str__()
для печати всех пар из словаря, который является атрибутом экземпляра моего класса.
Я делаю следующее:
from collections import defaultdict
class Node:
nextindex = 0
def __init__(self):
self.targetnode = defaultdict(Node)
self.index = Node.nextindex
Node.nextindex += 1
def add(self, line, pos=0):
if pos == len(line):
self.targetnode[""] = None
else:
c = line[pos]
self.targetnode[c].add(line, pos+1)
def __str__(self):
for c, tnode in self.targetnode.items():
return "Node %d Alphabet %s Targetnode %d" % (self.index, c, tnode.index)
root = Node()
for line in file:
root.add(line)
print(root)
file
содержит список слов, по одному слову в строке, например:
her
his
here
То, что я ожидал:
Node 0 Alphabet h Targetnode 1
Node 1 Alphabet e Targetnode 2
Node 2 Alphabet l Targetnode 3
и т.д.
Что я действительно получил:
Node 0 Alphabet h Targetnode 1
(h - первый алфавит из моего списка слов)
Может кто-нибудь сказать мне, почему он вернул только одну строку назад? Большое спасибо!