On 2014-11-21 17:35, Daniele Varrazzo wrote:
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.

Ah si`, giusto: le variabili sono definite qui:

if __name__ == '__main__':

    nome = 'Marco'
    cognome = 'Ippolito'

Il costruttore accidentalmente pesca questi valori dal namespace globale. Questo e` un comportamento sbagliato. Chiamale in un altro modo e vedrai che avrai un'eccezione anche nel primo caso.

-- Daniele
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a