[Python] Estensione classi
Daniele Zambelli
daniele.zambelli a inwind.it
Ven 20 Giu 2008 21:34:17 CEST
On Friday 20 June 2008 16:58:18 Paolo Ferretti wrote:
> Anche questo è il mio primo messaggio su questa ml ;-)
> Allora, a me sembra corretta la tua soluzione. Se usi l'ultima versione
> di Python, però, ti consiglio di usare la nuova sintassi per le classi.
> Non cambia gran chè a livello pratico, ma penso sia buona abitudine
> utilizzare i consigli di una buona scrittura di codice Python! Quindi:
Concordo
> class Veicle(object):
>
> def __init__(self, name, speed, fire_power, life = 500, shield=False):
> self._name = name
> self._speed=speed #km/h
> self._fire_power=fire_power
> self._shield = shield
> self._life = life
>
> class Submarine(Veicle):
> def __init__(self, name, speed, fire_power, deepness=0, life =
> 500, shield=False):
> #Veicle.__init__(self, name, speed, fire_power)
> super(Submarine, self).__init__(name, speed, firepower)
> self._deepness = deepness
Io trovo più comprensibile la sintassi:
> > Veicle.__init__(self, name, speed, fire_power)
Ma c'è invece un problema: se nel creare un Submarine si dà a life un valore
diverso da quello di default (lo stesso vale per shield) questo viene perso.
Se la classe Veicle viene usata solo come classe base per altre più
specializzate, io toglierei (da Veicle) i valori dei default).
Ciao
--
Daniele www.fugamatematica.blogspot.com
giusto!
_o) (o_ (o_ _o) nel verso
-./\\ //\.- //\ /\\ forse è perché non guardiamo le cose
_\_V V_/_ V_/ \_V Quando non ci capiamo,
Maggiori informazioni sulla lista
Python