On Sat, Nov 29 2014, Marco Ippolito wrote:
> Ciao a tutti,
> mi potreste spiegare quando sarebbe opportuno, perchè più efficace od
> efficiente, usare @staticmethod invece di "inglobare" (scusate per il
> termine poco tecnico) una funzione all'interno di una classe python in
> modo normale?
> 
> Marco

E' opportuno quando è utile disaccoppiare il metodo dall'oggetto. Per
esempio Pygtk non gestisce i riferimenti ciclici e mi è capitato di
individuare un memory leak perché un oggetto aveva un riferimento an un
oggetto Pygtk e a quest'ultimo avevo associato un metodo dell'oggetto
contenitore.

Ascii art time ;)

     |-----------------------
         |                      |
        obj     pygtk_obj     method
         |       |  |           |
         --------|  ------------|

Avrei potuto utilizzare una normale funzione, ma volevo conservare una
coerenza e ordine nelle funzioni e staticmethod me lo permetteva.

m.

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

Rispondere a