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.
Një bibliotekë pyetjesh intervistash IT me përgjigje të detajuara — nga Junior te Senior.
Dhuro