Një modul është një skedar i vetëm .py; një paket është një drejtori modulesh. Importet ju lejojnë të përdorni kod nga module të tjera, duke organizuar një program në pjesë të ringjellshme.
Modulet dhe importimi
(): 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
Skedari __init__.py shënon një drejtori si paket (dhe mund të ekzekutojë kod inicializimi të paketës ose të përcaktojë se çfarë from package import * ekspozon).
if __name__ == "__main__"def main():
print("running as a script")
if __name__ == "__main__": # True only when run directly, not when imported
main()
Kjo i lejon një skedari të funksionojë si modul i importueshëm dhe si skript i ekzekutueshëm — kodi nën të ekzekutohet vetëm kur skedari ekzekutohet drejtpërdrejt (python file.py), jo kur importohet. Një idiomë pothuajse universale e Python.
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
Moduleti dhe paketat janë mënyra se si ju organizoni kodin Python në njësi të ringjellshme, të mirëmbajtshme përkundrazi një skedari gjigant — themelor për ndonjë projekt jo-trivial.
Kuptimi i stileve të importit, struktura e paketës (__init__.py), idiomu if __name__ == "__main__" (sjellje e dyfishtë e skriptit/modulit) dhe si Python gjen modulet (sys.path) është thelbësor për strukturimin e projekteve, rikërdorimin e kodit dhe përdorimin e bibliotekës standarde të gjerë dhe ekosistemit PyPI.
Gabime në importim dhe konfuzion në strukturë janë pengesë të hershme të zakonshme që ky njohuri zgjidh.