Python-pakker: Hvordan oppretter og importerer jeg dem?

I denne artikkelen lærer du å dele kodebasen din i rene, effektive moduler ved hjelp av Python-pakker. Du lærer også å importere og bruke dine egne eller tredjepartspakker i Python-programmet.

Video: Python-pakker: Organiser koden din

Hva er pakker?

Vi lagrer vanligvis ikke alle filene våre på datamaskinen på samme sted. Vi bruker et godt organisert hierarki med kataloger for lettere tilgang.

Lignende filer holdes i samme katalog, for eksempel kan vi beholde alle sangene i " musikk " -katalogen. Analogt med dette har Python pakker for kataloger og moduler for filer.

Da applikasjonsprogrammet vårt blir større i størrelse med mange moduler, plasserer vi lignende moduler i en pakke og forskjellige moduler i forskjellige pakker. Dette gjør et prosjekt (program) enkelt å administrere og konseptuelt klart.

På samme måte, ettersom en katalog kan inneholde underkataloger og filer, kan en Python-pakke ha underpakker og moduler.

En katalog må inneholde en fil som er navngitt __init__.pyfor at Python kan betrakte den som en pakke. Denne filen kan være tom, men vi plasserer vanligvis initialiseringskoden for den pakken i denne filen.

Her er et eksempel. Anta at vi utvikler et spill. En mulig organisering av pakker og moduler kan være som vist i figuren nedenfor.

Pakkemodulstruktur i Python-programmering

Importerer modul fra en pakke

Vi kan importere moduler fra pakker ved hjelp av dot (.) -Operatøren.

Hvis vi for eksempel vil importere startmodulen i eksemplet ovenfor, kan det gjøres som følger:

 import Game.Level.start

Nå, hvis denne modulen inneholder en funksjon som heter select_difficulty(), må vi bruke det fulle navnet for å referere til den.

 Game.Level.start.select_difficulty(2)

Hvis denne konstruksjonen virker lang, kan vi importere modulen uten pakkeprefikset som følger:

 from Game.Level import start

Vi kan nå kalle funksjonen ganske enkelt som følger:

 start.select_difficulty(2)

En annen måte å importere bare den nødvendige funksjonen (eller klasse eller variabel) fra en modul i en pakke, vil være som følger:

 from Game.Level.start import select_difficulty

Nå kan vi direkte kalle denne funksjonen.

 select_difficulty(2)

Selv om det er lettere, anbefales ikke denne metoden. Bruk av hele navneområdet unngår forvirring og forhindrer at to samme identifikatornavn kolliderer.

Mens du importerer pakker, ser Python i listen over kataloger som er definert i sys.path, på samme måte som for modulsøkebanen.

Interessante artikler...