Klasa wyświetlająca None

Odpowiedz Nowy wątek
2020-03-19 11:29

Rejestracja: 2 tygodnie temu

Ostatnio: 2 tygodnie temu

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ć?

Pozostało 580 znaków

2020-03-19 11:39

Rejestracja: 3 lata temu

Ostatnio: 2 minuty temu

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__.


Pozostało 580 znaków

2020-03-19 11:40

Rejestracja: 3 miesiące temu

Ostatnio: 1 minuta temu

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

test.show()

Pozostało 580 znaków

Odpowiedz

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