[Python] Quando è opportuno usare @staticmethod?

Marco Ippolito ippolito.marco a gmail.com
Sab 29 Nov 2014 12:15:11 CET


ciao Marco,
ti ringrazio per la risposta.

Ammetto che faccio fatica a comprendere il caso concreto.
Entrando nello specifico. Consigli di usare @staticmethod quando è
utile disaccoppiare il metodo dall'oggetto.
Per cui nel caso specifico che hai illustrato, hai usato
@staticmethod, definendo come tale il metodo di pygtk_obj per
separarlo da quest'ultimo, cioè dapygtk_obj?
E' giusto quello che dico o sto prendendo una cantonata?

Marco

Il 29 novembre 2014 12:01, Marco Giusti <marco.giusti a posteo.de> ha scritto:
> 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 a lists.python.it
> http://lists.python.it/mailman/listinfo/python


Maggiori informazioni sulla lista Python