Paket och __init__.py
Organisera moduler i paket med en korrekt katalogstruktur.
Paket och __init__.py är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.
Vad är ett paket?
Ett paket är en katalog som innehåller en __init__.py-fil och en eller flera moduler. Python behandlar alla sådana kataloger som paket som ni kan importera från.
mypackage/
__init__.py
utils.py
math_helpers.pyFilen __init__.py
__init__.py körs när paketet importeras. Den kan vara tom eller exponera utvalda namn för anropande kod.
# mypackage/__init__.py
from .utils import helper
from .math_helpers import addImportera från ett paket
Använd punktnotation för att importera undermoduler eller namn som definierats i __init__.py.
import mypackage
from mypackage import helper
from mypackage.math_helpers import add
print(add(2, 3))Underpaket
Paket kan kapslas: en underkatalog med en egen __init__.py blir ett underpaket.
mypackage/
__init__.py
network/
__init__.py
http.pyRelativa importer
Inuti ett paket använder ni relativa importer med en inledande punkt för att referera till syskonmoduler utan att hårdkoda paketnamnet.
# mypackage/network/http.py
from ..utils import helper # two levels upAbsoluta och relativa importer
Absoluta importer är entydiga och bör föredras. Relativa importer är användbara i stora paket för att undvika långa namn.
# Absolute
from mypackage.utils import helper
# Relative (inside mypackage)
from .utils import helper__all__ i __init__.py
Definiera __all__ för att styra vad from package import * exporterar.
# mypackage/__init__.py
__all__ = ['helper', 'add']
from .utils import helper
from .math_helpers import addNamnrymdspaket (PEP 420)
Python 3.3+ har stöd för namnrymdspaket – kataloger utan __init__.py. Det är användbart när ett paket ska delas upp över flera kataloger.
# No __init__.py needed
# Just have the directory and import normally
import myns.moduleInitiering av paketets __init__
Använd __init__.py för att ange konstanter på paketnivå, konfigurera loggning eller läsa in tunga undermoduler vid behov.
# mypackage/__init__.py
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
VERSION = '1.0.0'Distribuera paket
Lägg till en pyproject.toml eller setup.py så att paketet kan installeras med pip.
# pyproject.toml excerpt
[project]
name = "mypackage"
version = "1.0.0"
# Install locally
# pip install -e .Inspektera paketattribut
Använd __file__, __path__ och __name__ för att undersöka paketmetadata under körning.
import mypackage
print(mypackage.__file__) # path to __init__.py
print(mypackage.__path__) # list of directory paths
print(mypackage.__name__) # 'mypackage'Snabbtest
Vilken fil gör en katalog till ett Python-paket?
Sammanfattning
Paket organiserar moduler i kataloger med hjälp av __init__.py. Använd absoluta importer för tydlighet, relativa importer inom ett paket och __all__ för att styra publika API:er.
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 76
- Lektioner
- 320
Vanliga frågor
Är lektionen ”Paket och __init__.py” gratis?
Ja – hela texten till ”Paket och __init__.py” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Paket och __init__.py”?
Organisera moduler i paket med en korrekt katalogstruktur. Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Python Academy?
Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Paket och __init__.py”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Python Academy-lektionen?
Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Skapa och importera moduler
- Pythons standardbibliotek
- Paket och __init__.py
- Installera paket med pip