Lista w pythonie - nadpisanie __repr__ i __str__

0

Dlaczego chociaz nadpisalem metody repr i str to i tak nie wyswietla mi sie poprawnie wezel z listy?

#!/usr/env/python

class Wezel :

    def __init__(self, a, b) :
        self.a = a
        self.b = b

    def __repr__(self) :
        return "[%s, %s]" % (self.a, self.b)

class Lista :

    def __init__(self) :
        self.lista = []

    def rozmiar(self) :
        return len(self.lista)

    def dodajWezel(self, wezel) :
        self.lista.append(wezel)


s = Wezel(1,2,3)
L = Lista()

L.dodajWezel(s)
print(L)
0

Tzn tak powinno byc:

#!/usr/env/python

class Wezel :

    def __init__(self, a, b) :
        self.a = a
        self.b = b

    def __repr__(self) :
        return "[%s, %s]" % (self.a, self.b)

    def __str__(self) :
        return "[%s, %s]" % (self.a, self.b)

class Lista :

    def __init__(self) :
        self.lista = []

    def rozmiar(self) :
        return len(self.lista)

    def dodajWezel(self, wezel) :
        self.lista.append(wezel)


s = Wezel(1,2)
L = Lista()

L.dodajWezel(s)
print(L)

Ale i tak nie dziala ;( uzywam pythona 3.1 na windowsie

0

Gdzie masz __repr__ dla Lista? Python nie wyczaruje sobie automatycznie reprezentacji zawierającej składowe.

0

Po co tworzysz nową klasę, jak python ma już "list". Jeżeli chcesz rozszerzyć funkcjonalność, to dziedzicz po liście. Węzeł może także po prostu być Wezel = namedtuple('Wezel', ['a', 'b']).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.