Klasa wyświetlająca None

1

No więc mam sobie taką klasę (napisana tylko dla pokazania w czym problem)

class xyz:
    def __init__(self,x,y,z):
        self.x = x
        self.y = y
        self.z = z
    
    def show(self):
        print('-'*10)
        print(self.x)
        print(self.y)
        print(self.z)
        print('-'*10)

test = xyz(1,2,3)

print(test.show())

Wyniki dostaje takie:

----------
1
2
3
----------
None

Moje pytanie brzmi, dlaczego atrybut klasy wyrzuca z siebie None i jak się tego pozbyć?

1

Dlatego, że nie Zwróciłeś niczego z funkcji (brak return), w takim przypadku, w Pythonie, automatycznie zwracane jest None. Jeśli Chcesz mieć możliwość "oglądania" obiektów klasy, to Napisz sobie __repr__ (koniecznie - tak widzi obiekt konsola) i __str__.

0

Usiłujesz wypisać zwrot funkcji show. Wystarczy, że ją po prostu wywołasz:

test.show()

1 użytkowników online, w tym zalogowanych: 0, gości: 1