[Python] Ereditarietà tra classi: un semplice esempio pratico da chiarire
Daniele Varrazzo
piro a develer.com
Ven 21 Nov 2014 18:35:48 CET
On 2014-11-21 17:19, Marco Ippolito wrote:
> class Sub(Super):
> def __init__(self, indirizzo,cosa_fa):
> Super.__init__(self, nome, cognome, indirizzo)
> self.cosa_fa = cosa_fa
...
> ora...
No, anche prima...
> se modifico la Sub class in questo modo:
> class Sub(Super):
> def __init__(self, cosa_fa):
> Super.__init__(self, nome, cognome, citta)
> self.cosa_fa = cosa_fa
Ne' questo ne' quello di sopra sono corretti. Forse hai delle variabili
globali che accidentalmente si chiamano nome e cognome ma non ne hai una
che si chiama citta.
nome e cognome sono variabili locali: le devi passare al costruttore di
sub, che nel primo caso potrebbe essere ad esempio:
class Sub(Super):
def __init__(self, nome, cognome, indirizzo, cosa_fa):
Super.__init__(self, nome, cognome, indirizzo)
self.cosa_fa = cosa_fa
Il secondo caso "funziona bene", ovvero ti da` un errore. Anche il primo
dovrebbe.
-- Daniele
Maggiori informazioni sulla lista
Python