Real Python spiega import in Python e avverte sui rischi di sicurezza
Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.
Guida pratica su import assoluti e relativi, sintassi, regole di stile PEP 8 e perché la catena di ricerca può provocare errori e vulnerabilità.
Real Python pubblica una guida che chiarisce differenze, sintassi e trade-off tra import assoluti e relativi in Python, con indicazioni di stile e avvisi di sicurezza1.
La guida parte dall’uso reale: più file, serve importare codice, nascono dubbi. Spiega come Python risolve un import. Quando scrivi import abc, l’interprete cerca abc in sys.modules, la cache dei moduli già caricati1. Se non lo trova, controlla tra i moduli built-in della standard library, come sys. Se ancora manca, scorre le directory in sys.path, che di norma include la directory corrente e la cerca per prima1. Se trova il modulo, Python lega il nome allo scope locale. Se non lo trova, solleva ModuleNotFoundError1.
Il pezzo ricapitola moduli e package. Un modulo è un file .py. Un package è una cartella che contiene moduli. Importare un package equivale a importare il suo init.py come modulo1.
La sintassi si divide in due forme comuni. import abc: abc può essere un package o un modulo. from abc import xyz: xyz può essere un modulo, un sotto-package o un oggetto, per esempio una classe o una funzione1. La guida mostra anche la rinomina con as: import abc as other_name. Dopo la rinomina, puoi usare solo other_name, altrimenti il nome non viene riconosciuto1.
PEP 8 detta regole per gli import. Vanno in cima al file, dopo commenti e docstring. Vanno divisi in tre gruppi: standard library, terze parti, applicazione locale. Ogni gruppo è separato da una riga vuota. L’ordinamento alfabetico dentro ciascun gruppo aiuta a trovare in fretta ciò che serve1. L’articolo mostra un esempio con datetime e os per la standard library, Flask per le terze parti e due import locali, con righe vuote tra i blocchi1.
Poi gli import assoluti. Un import assoluto specifica la risorsa da importare con il percorso completo a partire dalla root del progetto1. La guida fornisce una struttura di directory di esempio per contestualizzare1.
Il tutorial segnala rischi di sicurezza. Il sistema di import è flessibile, ma questa flessibilità apre superfici di attacco. La cache sys.modules è scrivibile. È possibile sovrascrivere funzionalità core tramite il meccanismo di importazione1. Importare da pacchetti di terze parti può esporre l’applicazione a minacce1. La guida rimanda a risorse esterne su questi problemi e su come mitigarli1.
La pagina include anche codice di esempio da scaricare e un quiz interattivo per verificare la comprensione di sintassi, stile e trade-off tra gli approcci1.
Fonti
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici
Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:
- Rilettura. Un passaggio toglie i tic della prosa generata da un modello, come i contrasti costruiti e le frasi che annunciano invece di informare, senza toccare fatti e fonti.
- Fedeltà alle fonti. Un passaggio dedicato toglie ogni affermazione che le fonti non sostengono. Valutazione su questo pezzo: 10/10.
- Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale: superato.
- Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica. Questo articolo ha preso 8,0/10.
I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.
Per vedere Millebit nelle notizie principali di Google, aggiungilo alle tue fonti preferite. Oppure segui l’edizione di oggi, il feed RSS o La Sintesi.