Un modul este un singur fișier .py; un pachet este un director de module. Importurile vă permit să utilizați cod din alte module, organizând un program în piese reutilizabile.
Module și importare
# math_utils.py — a module
def add(a, b): return a + b
PI = 3.14159
# 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
Pachete — directoare de module
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
Fișierul __init__.py marchează un director ca pachet (și poate executa cod de inițializare a pachetului sau defini ce expune from package import *).
Idiomul if __name__ == "__main__"
def main():
print("running as a script")
if __name__ == "__main__": # True only when run directly, not when imported
main()
Aceasta permite unui fișier să funcționeze atât ca modul importabil cât și ca script executabil — codul din el se execută doar când fișierul este executat direct (python file.py), nu când este importat. Un idiom Python aproape universal.
Unde caută Python module
import sys
sys.path # the list of directories Python searches for imports
# includes: the current directory, installed packages (site-packages), stdlib
Biblioteca standard și terți
import os, json, datetime # standard library — "batteries included"
import requests # third-party — installed via pip from PyPI
De ce este important
Modulele și pachetele sunt modul în care organizați codul Python în unități reutilizabile și ușor de întreținut, mai degrabă decât într-un singur fișier imens — fundamental pentru orice proiect netrivial.
Înțelegerea stilurilor de import, structurii pachetului (__init__.py), idiomului if __name__ == "__main__" (comportament dual script/modul) și modul în care Python găsește module (sys.path) este esențial pentru structurarea proiectelor, reutilizarea codului și utilizarea bibliotecii standard vaste și a ecosistemului PyPI.
Greșelile de import și confuzia de structură sunt obstacole inițiale comune pe care această cunoaștere le rezolvă.
