Stavo leggendo la documentazione Python su classes e sono imbattuto in questo paragrafo, che io non sono sicuro:Chiamata di metodi sovrascritto nella classe derivata da Base Class
Le classi derivate possono sovrascrivere i metodi delle loro classi base. Poiché i metodi non hanno privilegi speciali quando chiamata altri metodi dello stesso oggetto, un metodo di una classe base che chiama un altro metodo definito nella stessa classe base può finire per chiamare un metodo di una classe derivata che sostituzioni esso. (Per i programmatori C++: tutti i metodi in Python sono effettivamente virtuale.)
Esempio:
class A:
def foo(self):
self.bar()
def bar(self):
print "from A"
class B(A):
def foo(self):
self.bar()
def bar(self):
print "from B"
Questo significa che un oggetto della classe A obj = A()
possa in qualche modo finire per la stampa "di B" ? Sto leggendo questo correttamente? Mi scuso se questo non ha senso. Sono un po 'confuso su come Python gestisce l'ereditarietà e l'override. Grazie!
Per espandere, la parola d'ordine è perlomeno dovrebbe chiamare un metodo di una classe derivata. 'obj = B()' _would_ print "da B". –