Du tror override kjører begge versjonene

Handler om: Override (super)

Du tror Python automatisk kjører både forelderens og subklassens versjon av en overstyrt metode. Men når subklassen har sin egen versjon, kjører bare den. Forelderens versjon kjører bare hvis du kaller den selv med super().metode().

Eksempel

Ball.flytt() overstyrer Sprite.flytt(), og du venter at ballen også flytter seg slik Sprite gjør — men den gjør bare det Ball.flytt() sier.

Slik tenker du riktig om det

Tenk oppslag: Python leter i Ball først og stopper der den finner metoden. Vil du ha med forelderen, må du be om det: super().flytt().

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala