[Python] Ereditarietà tra classi: un semplice esempio pratico da chiarire

Marco Ippolito ippolito.marco a gmail.com
Ven 21 Nov 2014 18:53:04 CET


Ciao Daniele,
ti ringrazio per l'aiuto.

Ho modificato l'esempio, passando tutte le variabili locali (nome,
cognome, citta) al costruttore di sub. E coś funziona (come vedi
sotto).

#!/usr/bin/python

class Super:
    def __init__(self, nome, cognome, indirizzo):
        self.nome = nome
        self.cognome = cognome
        self.indirizzo = indirizzo
        self.nome_intero = '%s %s' % (self.nome, self.cognome)

    def super_meth_1(self):
        return '%s abita in %s' % (self.nome_intero, self.indirizzo)

    def get_super_result(self):
        return self.super_meth_1()

class Sub(Super):
    def __init__(self, nome, cognome, indirizzo, cosa_fa):
        Super.__init__(self, nome, cognome, indirizzo)
        self.cosa_fa = cosa_fa

    def sub_meth_1(self):
        return '%s  %s' % (self.nome_intero, self.cosa_fa)

    def get_sub_meth_1(self):
        return self.sub_meth_1()


if __name__ == '__main__':

    nome_f = 'Marco'
    cognome_f = 'Ippolito'
    abita_f = 'Milano'
    super_class = Super(nome_f, cognome_f, abita_f)
    ris_super = super_class.get_super_result()
    print "ris_super: ", ris_super
    cosa_f = 'suona'
    sub = Sub(nome_f, cognome_f, abita_f, cosa_f)
    ris_sub_1 = sub.get_sub_meth_1()
    print "ris_sub_1: ", ris_sub_1
    ris_sub_2 = sub.get_super_result()
    print "ris_sub_2: ", ris_sub_2

./classInheritage.py
ris_super:  Marco Ippolito abita in Milano
ris_sub_1:  Marco Ippolito  suona
ris_sub_2:  Marco Ippolito abita in Milano

C'è un modo per passare far ś che nel main passi a Sub solo le
variabili che lo "differenziano" (specializzano) rispetto a Super?
Cioè c'è un modo per far ś che io possa passare in "main" solo la
variabile "cosa_f"?

Ti ringrazio.
Marco


Maggiori informazioni sulla lista Python