Python paketi: Kako ih stvoriti i uvesti?

U ovom ćete članku naučiti podijeliti bazu koda na čiste, učinkovite module pomoću Python paketa. Također, naučit ćete uvoziti i koristiti vlastite ili nezavisne pakete u svom programu Python.

Video: Python paketi: organizirajte svoj kôd

Što su paketi?

Obično ne pohranjujemo sve datoteke na računalu na istom mjestu. Za lakši pristup koristimo dobro organiziranu hijerarhiju direktorija.

Slične se datoteke čuvaju u istom direktoriju, na primjer, sve pjesme možemo zadržati u direktoriju " glazba ". Analogno ovome, Python ima pakete za direktorije i module za datoteke.

Kako naš aplikacijski program raste s puno modula, stavljamo slične module u jedan paket, a različite module u različite pakete. To projektom (programom) čini lako upravljanje i konceptualno jasnim.

Slično tome, kako direktorij može sadržavati poddirektorijume i datoteke, paket Python može imati podpakete i module.

Direktorij mora sadržavati datoteku imenovanu __init__.pykako bi je Python mogao smatrati paketom. Ova datoteka može ostati prazna, ali u ovu datoteku obično stavljamo inicijalizacijski kod za taj paket.

Evo primjera. Pretpostavimo da razvijamo igru. Jedna od mogućih organizacija paketa i modula može biti kao što je prikazano na donjoj slici.

Struktura modula paketa u programiranju na Python

Uvoz modula iz paketa

Module možemo uvesti iz paketa pomoću operatora dot (.).

Na primjer, ako želimo uvesti startmodul u gornjem primjeru, to se može učiniti na sljedeći način:

 import Game.Level.start

Sad, ako ovaj modul sadrži funkciju imenovanu select_difficulty(), moramo upotrijebiti puno ime kako bismo je referencirali.

 Game.Level.start.select_difficulty(2)

Ako se ova konstrukcija čini dugotrajnom, možemo uvesti modul bez prefiksa paketa na sljedeći način:

 from Game.Level import start

Sada funkciju možemo nazvati jednostavno kako slijedi:

 start.select_difficulty(2)

Drugi način uvoza samo potrebne funkcije (ili klase ili varijable) iz modula unutar paketa bio bi sljedeći:

 from Game.Level.start import select_difficulty

Sada ovu funkciju možemo izravno pozvati.

 select_difficulty(2)

Iako je lakša, ova metoda se ne preporučuje. Korištenje punog prostora imena izbjegava zbrku i sprječava sudaranje dva ista imena identifikatora.

Tijekom uvoza paketa, Python izgleda na popisu direktorija definiranih u sys.path, slično kao i za put pretraživanja modula.

Zanimljivi članci...