[Python] Dubbi su hash e set

Francesco Guerrieri f.guerrieri a gmail.com
Mar 6 Maggio 2008 13:04:35 CEST


On Mon, May 5, 2008 at 9:20 AM, Pietro Battiston <toobaz a email.it> wrote:
> Pietro Battiston ha scritto:
>  > enrico franchi ha scritto:
>
> >> On Sun, May 4, 2008 at 7:20 PM, Pietro Battiston <toobaz a email.it> wrote:
>  >>
>  >>
>  >>>  (O intendi qualcos'altro? Io per ora del tipo "set" sto usando update,
>  >>>  remove, add, metodi che non vorrei dover ridefinire)
>  >>>
>  >>
>  >> E non ridefinirli. Delegali.
>
>  Vabbé che "Google is my friend", ma certo sei un tantinello criptico
>  (immagino si evinca dai miei messaggi precedenti quanto io sia poco
>  esperto di Python)?
>
>  "delegare" significa in pratica "richiamare esplicitamente il metodo di
>  libreria all'interno del metodo che si ridefinisce"? Tipo
>
>  class nonderivata():
>     def __fai_questo__(self):
>         set.__fai_questo__(self)
>
>  ?
>
>  Se sì, che ci guadagno?!
>  Se no, che vuol dire?!


Ciao, spero di non aggiungere confusione. Se fosse così, cancellate
il mio messaggio :)

Ho letto rapidamente il thread, forse un semplice esempio può essere utile:

>>> class my_list(list):
...   def append(self, val):
...      print "ciao", val
...      list.append(self, val)
...
>>> prova=my_list([1,2,3])
>>> prova
[1, 2, 3]
>>> prova.reverse()
>>> prova
[3, 2, 1]
>>> prova.append(4)
ciao 4
>>> prova
[3, 2, 1, 4]

Come vedi my_list eredita da list, a cui delega tutti i metodi,
ad esempio __repr__ e reverse, e invece sovrascrive,
in una maniera veramente stupida, il metodo append.

ciao,
fra


Maggiori informazioni sulla lista Python