En modul er en enkel .py-fil; en pakke er en mappe av moduler. Importeringer lar deg bruke kode fra andre moduler, og organiserer et program i gjenbrukbare deler.
Moduler og importering
(): a + b
PI =
# main.py — different ways to import
import math_utils # import the whole module
math_utils.add(2, 3) # access via the module name
from math_utils import add, PI # import specific names
add(2, 3) # use directly
from math_utils import add as plus # import with an alias
import numpy as np # common aliasing convention
mypackage/
__init__.py ← marks it as a package (can be empty)
module_a.py
subpackage/
__init__.py
module_b.py
from mypackage.module_a import something
from mypackage.subpackage.module_b import other
Filen __init__.py markerer en mappe som en pakke (og kan kjøre pakkeinitieringskode eller definere hva from package import * eksponerer).
if __name__ == "__main__"def main():
print("running as a script")
if __name__ == "__main__": # True only when run directly, not when imported
main()
Dette lar en fil fungere både som en importerbar modul og et kjørbart skript — koden under den kjøres kun når filen utføres direkte (python file.py), ikke når den importeres. Et nesten universelt Python-idiom.
import sys
sys.path # the list of directories Python searches for imports
# includes: the current directory, installed packages (site-packages), stdlib
import os, json, datetime # standard library — "batteries included"
import requests # third-party — installed via pip from PyPI
Moduler og pakker er hvordan du organiserer Python-kode i gjenbrukbare, vedlikeholdbare enheter i stedet for én gigantisk fil — grunnleggende for ethvert ikke-trivielt prosjekt.
Å forstå importstilene, pakkekonstruksjonen (__init__.py), idiomatikken if __name__ == "__main__" (dobbel skript-/modulatferd), og hvordan Python finner moduler (sys.path) er essensielt for å strukturere prosjekter, gjenbruke kode, og bruke det enorme standardbiblioteket og PyPI-økosystemet.
Importeringsfeil og strukturforvirring er vanlige tidlige hindringer som denne kunnskapen løser.