Package e __init__.py
Organizzi i moduli in package con una struttura di directory adeguata.
Package e __init__.py è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.
Che cos'è un package?
Un package è una directory che contiene un file __init__.py e uno o più moduli. Python considera ogni directory di questo tipo un package da cui è possibile importare elementi.
mypackage/
__init__.py
utils.py
math_helpers.pyIl file __init__.py
__init__.py viene eseguito quando il package viene importato. Può essere vuoto oppure esporre nomi selezionati ai chiamanti.
# mypackage/__init__.py
from .utils import helper
from .math_helpers import addImportare da un package
Utilizzi la notazione con il punto per importare sottomoduli o nomi definiti in __init__.py.
import mypackage
from mypackage import helper
from mypackage.math_helpers import add
print(add(2, 3))Sottopackage
I package possono essere annidati: una sottodirectory con il proprio __init__.py diventa un sottopackage.
mypackage/
__init__.py
network/
__init__.py
http.pyImport relativi
All'interno di un package, utilizzi gli import relativi con un punto iniziale per fare riferimento ai moduli dello stesso livello senza codificare il nome del package.
# mypackage/network/http.py
from ..utils import helper # two levels upImport assoluti e relativi
Gli import assoluti non sono ambigui e sono preferibili. Gli import relativi sono utili all'interno di package di grandi dimensioni per evitare nomi molto lunghi.
# Absolute
from mypackage.utils import helper
# Relative (inside mypackage)
from .utils import helper__all__ in __init__.py
Definisca __all__ per controllare ciò che from package import * esporta.
# mypackage/__init__.py
__all__ = ['helper', 'add']
from .utils import helper
from .math_helpers import addNamespace package (PEP 420)
Python 3.3+ supporta i namespace package — directory senza __init__.py. Sono utili per suddividere un package tra più directory.
# No __init__.py needed
# Just have the directory and import normally
import myns.moduleInizializzazione di __init__ del package
Utilizzi __init__.py per definire costanti a livello di package, configurare il logging o caricare in modo lazy i sottomoduli pesanti.
# mypackage/__init__.py
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
VERSION = '1.0.0'Distribuire i package
Aggiunga un file pyproject.toml o setup.py per rendere il package installabile con pip.
# pyproject.toml excerpt
[project]
name = "mypackage"
version = "1.0.0"
# Install locally
# pip install -e .Ispezionare gli attributi di un package
Utilizzi __file__, __path__ e __name__ per esaminare i metadati del package durante l'esecuzione.
import mypackage
print(mypackage.__file__) # path to __init__.py
print(mypackage.__path__) # list of directory paths
print(mypackage.__name__) # 'mypackage'Verifica rapida
Quale file rende una directory un package Python?
Riepilogo
I package organizzano i moduli in directory utilizzando __init__.py. Utilizzi gli import assoluti per maggiore chiarezza, gli import relativi all'interno di un package e __all__ per controllare le API pubbliche.
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 76
- Lezioni
- 320
Domande Frequenti
La lezione «Package e __init__.py» è gratuita?
Sì — il testo completo di «Package e __init__.py» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.
Cosa imparerò in «Package e __init__.py»?
Organizzi i moduli in package con una struttura di directory adeguata. Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Python Academy?
Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Package e __init__.py»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Python Academy?
Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Creazione e importazione dei moduli
- La libreria standard di Python
- Package e __init__.py
- Installazione dei package con pip