Pachete Python: Cum să le creați și să le importați?

În acest articol, veți învăța să împărțiți baza de coduri în module curate și eficiente folosind pachete Python. De asemenea, veți învăța să importați și să utilizați pachetele proprii sau terțe în programul dvs. Python.

Video: Pachete Python: Organizați-vă codul

Ce sunt pachetele?

De obicei, nu stocăm toate fișierele pe computerul nostru în aceeași locație. Folosim o ierarhie bine organizată de directoare pentru un acces mai ușor.

Fișiere similare sunt păstrate în același director, de exemplu, putem păstra toate melodiile în directorul „ muzică ”. Analog cu aceasta, Python are pachete pentru directoare și module pentru fișiere.

Pe măsură ce programul nostru de aplicații crește, cu o mulțime de module, plasăm module similare într-un singur pachet și module diferite în pachete diferite. Acest lucru face ca un proiect (program) să fie ușor de gestionat și clar din punct de vedere conceptual.

În mod similar, întrucât un director poate conține subdirectoare și fișiere, un pachet Python poate avea subpachete și module.

Un director trebuie să conțină un fișier numit __init__.pypentru ca Python să îl considere ca un pachet. Acest fișier poate fi lăsat gol, dar în general plasăm codul de inițializare pentru acel pachet în acest fișier.

Iată un exemplu. Să presupunem că dezvoltăm un joc. O posibilă organizare a pachetelor și modulelor ar putea fi așa cum se arată în figura de mai jos.

Structura modulului pachetului în programarea Python

Importul modulului dintr-un pachet

Putem importa module din pachete folosind operatorul punct (.).

De exemplu, dacă dorim să importăm startmodulul din exemplul de mai sus, se poate face după cum urmează:

 import Game.Level.start

Acum, dacă acest modul conține o funcție numită select_difficulty(), trebuie să folosim numele complet pentru a-l face referire.

 Game.Level.start.select_difficulty(2)

Dacă această construcție pare lungă, putem importa modulul fără prefixul pachetului după cum urmează:

 from Game.Level import start

Acum putem apela funcția pur și simplu după cum urmează:

 start.select_difficulty(2)

Un alt mod de a importa doar funcția necesară (sau clasa sau variabila) dintr-un modul dintr-un pachet ar fi după cum urmează:

 from Game.Level.start import select_difficulty

Acum putem apela direct această funcție.

 select_difficulty(2)

Deși mai ușoară, această metodă nu este recomandată. Utilizarea spațiului de nume complet evită confuzia și împiedică coliziunea a două nume identice.

În timp ce importați pachete, Python arată în lista de directoare definite în sys.path, similar cu calea căutării modulului.

Articole interesante...