[Python] Semplice domanda sulle classi.

Raffaele Salmaso raffaele a salmaso.org
Dom 5 Gen 2014 13:09:48 CET


2014/1/5 Gabriele Battaglia <gabriele.battaglia at gmail.com>:
> Ciao.
> Ho questo quesito, da principiante, sulle classi.
>
> Creo la mia fabbrica di automobili:
>
> class Veicoli:
>     ruote = 4
>
> Per ora mi accontento e mi compro subito una macchina:
>
> Auto = Veicoli()
>
> Ora, siccome sono un tipo innovativo, mi metto li ed applico una modifica alla mia vettura nuova:
>
> Auto.ruote = 5
>
> Domanda: posso inserire del codice, nella classe, che forzi i dati membri ad assumere solo determinati valori, e non altri?
> Ad esempio, in questo caso, Auto.ruote potrebbe sollevare una eccezione o essere aggiustato via codice ad un altro valore.
@property (ah, hai cambiato solo la classe, ma il codice che la usa
non serve cambiarlo ;) )


class Veicoli(object):
  def __init__(self, ruote=4):
    self._ruote = ruote

  @property
  def ruote(self):
    return self._route
  @ruote.setter
  def ruote(self, ruote):
    if ruote not in (4,6, 8):
      raise ValueError('no')
    self._ruote = ruote

Auto = Veicoli()
Auto.ruote = 5



-- 
| Raffaele Salmaso
| http://salmaso.org
| https://bitbucket.org/rsalmaso
| http://gnammo.com


Maggiori informazioni sulla lista Python