[Python] from module import *

Piergiorgio Pancino piergiorgio.pancino a gmail.com
Mar 10 Dic 2019 10:35:59 CET


Ciao a tutti,
vi scrivo per un consiglio concernente l'importazione di * da un modulo.

Il problema si pone per il fatto che il software sul quale lavoro e'
esposto allo scripting da parte degli utenti e quindi non e' realmente
controllabile con delle semplici regole di buon coding.

Senza andare troppo nei dettagli, ho un modulo con delle funzioni frontend
(con print) e un modulo corrispondente con delle funzioni di backend (che
ritornano dizionari, NamedTuple ...) queste funzioni hanno lo stesso nome e
nel momento in cui l'utente fa: 'from backend import *' questo sovrascrive
le funzioni frontend in maniera inaspettata (perlomeno per l'utente).
Questo e' anche dovuto al modo in cui vengono caricati gli script utente
che pero' al momento non e' possibile cambiare: in pratica abbiamo un
`load_script` che elabora il file ed esegue quanto contenuto, una pratica
non proprio pythonica, ma va mantenuta.

Una delle possibili soluzioni e' chiaramente rinominare le funzioni
backend, magari con un 'lib_funzione'.
Una alternativa sarebbe impedire l'import star, la domanda infatti verte su
questo: e' possobile sollevare un'eccezione su questo tipo di import?
Grazie

Piergiorgio
-------------- parte successiva --------------
Un allegato HTML รจ stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20191210/3ac1264d/attachment.html>


Maggiori informazioni sulla lista Python