Edukien aurkibidea[Ezkutatu][Erakutsi]
Hitzaldi honek Python-eko modulu eta paketeen inguruan hartuko du parte.
Zure kodea fitxategi moduan antolatzeko modu bat dira eta oso garrantzitsuak dira Python-ekin web aplikazioak eraikitzeko asmoa baduzu.
Moduluak
Python-en modulu bat, funtsean, gure kodea fitxategietan antolatzeko erabiltzen dugun python kodea duen fitxategi bat da. Pentsa ezazu supermerkatu bateko atalak bezala. Supermerkatu batera zoazenean hainbat atal daude frutak, barazkiak, garbiketa produktuak etab. Ez duzu atal bat ikusten produktu guztiekin.
Programazioan kontzeptu bera da. Main.py-n gure kode guztia funtzio eta klase guztiekin idatzi beharrean, hainbat fitxategitan zatitzen dugu gure kodea. Fitxategi bakoitzari modulu gisa esaten zaio. Honekin, gure kodea hobeto antolatu eta egituratuta egoteaz gain, gure kodea berrerabiltzeko gaitasuna ere badugu. Ikus dezagun adibide baten bidez.
Definitu ditzagun bi funtzio pisua kilotik kilogrametara bihurtzeko eta alderantziz.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Orain, bi funtzio hauek hartu eta "bihurgailuak" izeneko modulu bereizi batean jar ditzakegu, eta gero bihurgailu funtzio hauek behar dituen edozein programara inporta daiteke. Utzidazue hau nola egin.
Ireki dezagun gure proiektuaren panela eta egin klik eskuineko botoiarekin proiektuan eta gehitu fitxategi berri bat. Fitxategi honi "Converters.py" deituko diogu.
Orain kopiatu kodea fitxategi lehenetsitik eta itsatsi "Converters.py"-n.
Honekin, gure modulu nagusia garbitu dugu eta ez dago funtzio ezberdinekin puztuta. Klaseekin funtzio gehiago idazten ditugun heinean, dagozkion moduluetan jartzen ditugu. Modulu batek erlazionatutako funtzio eta klase guztiak eduki behar ditu. Orain, bihurgailuen modulua gure aplikazioaren moduluan inportatu nahi dugu. Horretarako, idatzi import converters
goiko aldean “.py” luzapenik gabe.
Modulu bateko kideetara sar gaitezke metodoen antzeko puntu-operadore bat erabiliz.
Bihur ditzagun 70 kg libratan:
Moduluak inportatzeko beste sintaxi bat ere badago. Modulu osoa inportatu beharrean, modulu horretatik funtzio zehatzak inporta ditzakegu. Idatzi dezakegu from Converters import
eta sakatu "kontrola + zuriunea erabilgarri dauden funtzioen zerrenda erakusteko. Honekin, zuzenean dei diezaiokegu funtzio honi.
Ariketa
Hona hemen zure ariketa.
Hitzaldiko ariketa batekin lotuta dago, non eztabaidatu genuen “begiztetarako” non programa bat idatzi genuen zerrenda bateko kopururik handiena jakiteko
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Kode honek ez du erakunderik une honetan. Ez dugu funtziorik edo modulurik eta programa fitxategi bakarrean idatzita dago. Hori ondo dago programa txikietarako, baina zure programak hazten diren heinean, zure kodea behar bezala antolatu behar duzu klase eta moduluetan. Horregatik, ariketa honen barruan, funtzio bat idaztea nahi dut, deitu find_max
. Funtzio honek zerrenda bat hartu eta zerrenda horretako zenbakirik handiena itzuli beharko luke. Horren ondoren, aurrera eta jarri funtzio hau aparteko modulu batean, atera hemendik eta jarri izeneko modulu batean utils
. Modulu honek erabilgarritasun-funtzio mordoa izan beharko luke. Inportatu utils
modulua uneko moduluan sartu eta deitu find_max
funtzioa. Azkenik, lortu emaitza eta inprimatu terminalean.
Ariketa hau apur bat zaila da baina erraz egin daiteke.
Irtenbidea
Hasi funtzio bat definitzen find_max
eta gehitu zenbakiak izeneko parametro bat. Funtzio honen barruan, idatzi zerrenda bateko zenbakirik handiena aurkitzeko algoritmoa.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Gorde kode hau "utils.py" fitxategi batean modulu gisa.
Itzuli gure programa nagusira, inportatu modulua bi sintaxietatik eta exekutatu logika.
Gauza bat, zure arreta erakarri behar dut ahuldua da max
. Horren arrazoia da max
Python-en integratutako funtzio bat da eta birdefinitzen ari gara. Beraz, hau abisua da Python konpilatzailea jada ezin dugula max bere funtzio integratua erabili.
Python-en integratutako moduluak
Python-ek ohiko zereginetarako hainbat modulu dituen liburutegi estandar batekin dator, hala nola mezu elektronikoak bidaltzea, data eta ordua lantzea, ausazko balioak eta pasahitzak sortzea eta abar. Hainbeste modulu daude dagoeneko Python-en integratuta, eta horrek esan nahi du dagoeneko berrerabil ditzakegun funtzionalitate asko daudela. Modulu hauek aurki ditzakezu hemen.
Paketeak
Paketeak, funtsean, moduluen gainean gure kodea antolatzeko beste modu bat dira. Benetako proiektu batek ehunka edo milaka modulu izan ditzake eta denborarekin gure direktorioa hainbeste fitxategiz hazten joango da. Hori dela eta, hurbilketa hobea da pakete baten barruan erlazionatutako moduluak antolatzea eta horrek paketea modulu anitzeko edukiontzi bihurtzen du.
Direktorio berri bat gehitzen zaio proiektuari eta erlazionatutako modulu guztiak direktorio horretara gehitzen dira. Adibide gisa, pentsa zentro komertziala. Zentro batean gizonezko, emakumezko eta haurrentzako jantzientzako atal desberdinak daude, pakete modukoak direnak. Atal bakoitzak gune desberdinak ditu produktu mota ezberdinetarako, hala nola oinetakoak, kamisetak eta jakak. Pentsa hauek modulu gisa.
Ikus dezagun nola sortu eta erabili paketeak Python-en.
Lehenik eta behin, gehitu direktorio berri bat proiektuaren paneletik. Dei diezaiogun “eCommerce”. Pakete honek merkataritza elektronikoko aplikazio bati lotutako modulu guztiak izango ditu.
Direktorio huts bat da oraindik eta pakete bihurtzeko, fitxategi berezi bat sortu behar dugu bertan. Gehitu python fitxategi berri bat direktorio honetan eta izendatu fitxategi horri "__init__". Python-en konbentzio berezi bat da eta Python-en interpreteak direktorio batean izen hau duen fitxategi bat ikusten duenean, direktorioa pakete gisa tratatzen du.
Pakete bat sortzeko metodo alternatibo eta zehatza ere badugu. Egin klik eskuineko botoiarekin proiektuaren panelean eta sortu Python pakete bat zerrendatik. Ipini “eCommerce” eta kitto. Automatikoki direktorio bat sortuko du "__init__" izeneko Python fitxategi batekin.
Orain, sor diezaiogun paketean modulu bat eta izenda diezaiogun "bidalketa". Modulu honetan, sor dezagun bidalketa kostuak kalkulatzeko funtzio sinple bat.
def calc_shipping():
print("calc_shipping")
Funtzio honetara gure modulu nagusian sartzeko, merkataritza elektronikoko paketearen bidez sartu behar dugu. Berriro ere bi metodo ditugu modulu hau inportatzeko.
Lehenengo metodoan, modulu osoa inporta dezakegu eta, ondoren, funtzio bati modu independentean dei dezakegu honela:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Hala ere, ikuspegi honekin, modulu honetako funtzioetako bat deitzeak aurrizkia jartzea eskatzen du eCommerce.shipping.
Hori oso hitza da. Beraz, paketeekin lan egitean sarritan bigarren ikuspegia erabiltzen dugu eta erabiltzen dugu from
adierazpen.
from eCommerce.shipping import calc_shipping
calc_shipping()
Modulu batean hainbat funtzio badituzu, guztiak lerro bakarrean inporta ditzakezu haien arteko komak erabiliz. Demagun gure bidalketa moduluan zerga kalkulatzeko beste funtzio bat dagoela. Honela inportatuko da:
from eCommerce.shipping import calc_shipping, calc_tax
Modulu indibidualak ere inporta ditzakezu eta programaren geroago deitzeko funtzioak utz ditzakezu. Inporta dezagun moduluaren bidalketa eta, ondoren, erabili dot operadore bat funtzioari deitzeko calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Bilatu!
Paketeak eta moduluak oso garrantzitsuak dira Python-en. Batez ere, eraikitzeko erabiltzen den Django bezalako esparru batekin lan egin nahi duzunean web aplikazioak Python-ekin. Django aztertuko dugu beste Python ikastaro batean.
Hau izan zen ziklo honetako azken hitzaldi konbentzionala. Hurrengo hitzaldia gure ohiko formatutik desbideratuko da eta Python-en erabilera kasu garrantzitsu batzuk ikasiko ditugu. Horrek serie honen amaiera markatuko du eta gure hurrengo Python seriera pasatuko gara. Egon adi.
Utzi erantzun bat