English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Python

Controllo dei flussi Python

Funzione in Python

Tipi di dati in Python

Operazioni di file Python

Oggetti e classi Python

Date e ora Python

Conoscenze avanzate di Python

Manuale di riferimento di Python

Pacchetto (Package) in Python

In questo articolo, imparerai a utilizzare i pacchetti Python per dividere le librerie di codice in moduli puliti ed efficienti. Inoltre, imparerai come importare e utilizzare pacchetti software propri o di terze parti nei programmi Python.

Cos'è un pacchetto (Package)?

Di solito non mettiamo tutti i file nello stesso posto. Utilizziamo una struttura gerarchica ben organizzata delle directory per facilitare l'accesso.

I file simili vengono conservati nella stessa directory, ad esempio, possiamo mantenere tutte le canzoni nella directory “music”. Allo stesso modo, Python ha pacchetti software per le directory e per i fileModulo.

Con l'aumento della scala delle nostre applicazioni, con molti moduli, mettiamo moduli simili in un pacchetto e moduli diversi in pacchetti diversi. Questo rende il progetto (programma) facile da gestire e chiaramente concettuale.

Allo stesso modo, poiché le directory possono contenere sottodirectory e file, i pacchetti Python possono avere sottopacchetti e moduli.

La directory deve contenere un file chiamato __init__.py per che Python lo consideri un pacchetto. Questo file può essere lasciato vuoto, ma di solito mettiamo il codice di inizializzazione del pacchetto in questo file.

Questo è un esempio. Supponiamo di essere in fase di sviluppo di un gioco, l'organizzazione possibile del pacchetto e dei moduli è illustrata di seguito.

Importare moduli da un pacchetto

Possiamo utilizzare l'operatore punto (.) per importare moduli da un pacchetto.

Ad esempio, per importare il modulo start nell'esempio sopra, segui questi passaggi.

import Game.Level.start

Ora, se il modulo contiene una funzione chiamata select_difficulty()FunzioneDobbiamo utilizzare il nome completo per riferirci a esso.

Game.Level.start.select_difficulty(2)

Se questa costruzione sembra lunga, possiamo importare il modulo senza prefisso del pacchetto come segue.

from Game.Level import start

Ora possiamo chiamare semplicemente la funzione come segue.

start.select_difficulty(2)

Un altro metodo per importare solo le funzioni (o classi o variabili) da un modulo del pacchetto è il seguente.

from Game.Level.start import select_difficulty

Ora possiamo chiamare direttamente questa funzione.

select_difficulty(2)

Anche se è abbastanza semplice, non si consiglia di utilizzare questo metodo. Utilizzare il nome completoSpazio dei nomiPuò evitare la confusione e prevenire conflitti tra due identificatori con lo stesso nome.

Quando si importa un pacchetto, Python verifica la lista dei directory definiti in sys.path, simile aPercorso di ricerca dei moduli.