On 08 Nov 2013, at 10:43, Simone Federici <s.feder...@gmail.com> wrote:

> Beh, se ci pensi, in una qualche maniera ha definito proprio il decoratore 
> che suggerivi (vedi wraps… :-)
> Super cool.. :-)
> 
> Giuro che so leggere :-D
> 

Ma certo..voleva solo essere un ulteriore appunto, nulla di più :-)

> Però lo fa su tutti i metodi, anzi su tutti i callable quindi compresi gli 
> attributi = Class giusto per fare un esempio.

Si, è chiaro… ma infatti dipende dal caso d'uso specifico.. se il comportamento 
di invocazione della superclasse deve essere *sempre* effettuato per ogni 
metodo ridefinito, così fai molto prima e bene.
Altrimenti, vai di decoratore… in questo caso, forse, sarebbero soluzioni 
equivalenti.

> 
> Inoltre invoca il super prima, ma se lo volessimo invocare dopo o peggio in 
> mezzo?

Si, vero.. il comportamento di invocazione del super è unico e univoco per 
tutti i callable.. se volessi avere ordini di invocazione differenti, nel tuo 
caso la definizione di un nuovo decoratore vince in flessibilità
e semplicità di implementazione.

> insomma fa qualcosa per me in modo odisamente trasparente, le metaclassi sono 
> fantastiche, mi piace tanto a livello didattico ma non lo utilizzerei mai :-D

Sul livello didattico, non sono d'accordo. Meta-class programming è un 
paradigma a se.. ci sono tonnellate di letteratura a riguardo.
> 
> @callsuper lo preferisco :-)

Beh, alla fine credo che lo spirito della risposta di Enrico sia stato più che 
altro quello di "smentire" la mia iniziale osservazione (btw, sono contento che 
l'abbia fatto!) che 
le meta-classi non sarebbero state di aiuto, al contrario di quanto subodorato 
da Marco sin dall'inizio.

Nessuno però ha mai parlato di quale sia la soluzione migliore (in generale o 
nel caso specifico).
Probabilmente, dipende anche da fattori di "gusti personali"..

> qualche implementazione fornite dai google friends:
> http://snipperize.todayclose.com/snippet/py/Decorator-for-calling-the-super-method-automagically.--24988/
> http://anybox.fr/blog/calling-super-from-a-method-decorator

Davvero molto interessanti! Grazie per lo share !-)

--
valerio


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

Rispondere a