[Python] Funzioni come moduli

Leonardo learts92 a gmail.com
Lun 30 Giu 2008 19:59:31 CEST


> Mi sembra di capire che tu fai execfile per sfruttare gli effetti secondari
> delle istruzioni eseguite. Se posso, ti suggerisco di creare dei moduli
> plugin che definiscano unicamente una funzione. Puoi "caricare" tutti i
> plugin all'avvio del programma o ad un certo evento e poi usare le funzioni
> dove servono.
> 
> Puoi definire ad esempio che ogni plugin debba esportare una funzione
> handle_<qualcosa> con una signature prefissata - diciamo (self,
> server_response). All'atto di caricare i plugin puoi fare (untested, e
> senza error handling):
> 
>     env = {}
>     execfile(my_file, env)
>     
>     for k, v in env.iteritems():
>         if k.startswith('handle_'):
>             register_plugin(v)
>             break
>     else:
>         complain("no plugin in this file")

Non ho ben capito.
Scusate la mia niubbagine, ma sono da pochi mesu su python ed è il primo
linguaggio che "studio".
Mi stai dicendo di creare un'unica funzione all'interno di ogni modulo e
importare tutti i moduli all'avvio, dopodichè chiamare la funzione
anzichè il modulo? e cosa dovrei passare all'argomento self della
funzione? Un'istanza di Rule?
Andrei in perdita dal punto di vista delle prestazioni facendo così?

> Se i plugin hanno la possibilita' di poter intervenire in diverse fasi del
> tuo processo, potresti definire una classe BasePlugin fornita dei diversi
> hook e implementare gli hook desiderati in ogni plugin.
Questa frase non l'ho capita proprio del tutto..
Scusa ancora per la mia niubbagine, grazie per le risposte



Maggiori informazioni sulla lista Python