Table di cuntinutu[Piattà][Mostra]
Questa cunferenza si sparghjerà intornu à i moduli è i pacchetti in Python.
Sò un modu per urganizà u vostru còdice in forma di schedari è sò veramente impurtanti se avete intenzione di custruisce applicazioni web cù Python.
moduli
Un modulu in Python hè basicamente un schedariu cù qualchì codice Python chì avemu usatu per urganizà u nostru codice in schedari. Pensate à questu cum'è sezioni in un supermercatu. Quandu andate in un supermercatu, ci sò diverse sezioni per frutti, ligumi, prudutti di pulizia, ecc. Ùn vede micca una sezione cù tutti i prudutti.
Hè u listessu cuncettu in a prugrammazione. Invece di scrive tuttu u nostru codice cù tutte e funzioni è e classi in main.py, rompemu u nostru codice in parechji schedari. Ogni schedariu hè chjamatu modulu. Cù questu, micca solu u nostru codice hè megliu urganizatu è strutturatu, ma avemu ancu a capacità di riutilizà u nostru codice. Videmu à traversu un esempiu.
Definimu duie funzioni per cunvertisce u pesu da libbra à kilogrammi è vice versa.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Avà, pudemu piglià sti dui funzioni è mette in un modulu separatu chjamatu "convertitore", è poi pò esse impurtatu in ogni prugramma chì hà bisognu di sti funzioni di cunvertitore. Lasciami mustrà cumu fà questu.
Apertura u nostru pannellu di prughjettu è cliccate right-click u prughjettu è aghjunghje un novu schedariu. Avemu da chjamà stu schedariu "Converters.py".
Avà copià u codice da u schedariu predeterminatu è incollà in u "Converters.py".
Cù questu, avemu pulitu u nostru modulu principale è ùn hè micca gonfiatu cù diverse funzioni. Cumu scrivemu più funzioni cù e classi, i mettemu in i so moduli currispundenti. Un modulu deve cuntene tutte e funzioni è classi cunnessi. Avà, vulemu impurtà u modulu di cunvertitori in u nostru modulu di app. Per fà questu, scrive import converters
in cima senza l'estensione ".py".
Pudemu accede à i membri di un modulu usendu un operatore di punti simili à i metudi.
Cunvertisce 70 kg in libbra:
Ci hè ancu una altra sintassi per impurtà moduli. Invece di impurtà u modulu sanu, pudemu impurtà funzioni specifiche da quellu modulu. Pudemu scrive from Converters import
è appughjà "cuntrollu + spaziu per vede a lista di e funzioni dispunibili. Cù questu, pudemu chjamà direttamente sta funzione.
Exercise
Eccu u vostru esercitu.
Questu hè in relazione cù un esercitu da a lezione induve avemu discututu "per cicli" induve avemu scrittu un prugramma per sapè u più grande numeru da una lista
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Stu codice attualmente ùn hà micca urganizazione. Ùn avemu micca funzioni o moduli è u prugramma hè scrittu in un unicu schedariu. Hè bè per i picculi prugrammi, ma cum'è i vostri prugrammi crescenu, avete bisognu à urganizà currettamente u vostru codice in classi è moduli. Dunque, cum'è parte di questu esercitu, vogliu chì scrive una funzione, chjamate find_max
. Sta funzione deve piglià una lista è rinvià u numeru più grande in quella lista. Dopu quì vai avanti è mette sta funzione in un modulu separatu, estrae da quì è mette in un modulu chjamatu utils
. Stu modulu deve cuntene una mansa di funzioni di utilità. Importà u utils
modulu in u modulu attuale è chjamate find_max
funzione. Infine, uttene u risultatu è stampate nantu à u terminal.
Questu esercitu hè un pocu sfida, ma facia facilmente.
Vergogna à tè
Cumincià da definisce una funzione find_max
è aghjunghje un paràmetru chjamatu numeri. Dentru sta funzione, scrivite l'algoritmu per truvà u numeru più grande in una lista.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Salvà stu codice in un schedariu "utils.py" cum'è un modulu.
Torna à u nostru prugramma principale, basta impurtà u modulu per una di e duie sintassi è solu eseguite a logica.
Una cosa, aghju bisognu di portà a vostra attenzione hè u minatu max
. U mutivu di questu hè u max
hè una funzione integrata in Python è a ridefiniscemu. Allora questu hè un avvisu da u compilatore Python chì ùn pudemu più aduprà max cum'è a so funzione integrata.
Moduli integrati in Python
Python vene cun una libreria standard chì cuntene parechji moduli per i travaglii cumuni, cum'è l'inviu di e-mail, u travagliu cù data è ora, generà valori aleatorii è password è cusì. Ci sò tanti moduli digià integrati in Python chì significa chì ci hè digià assai funziunalità chì pudemu riutilizà. Pudete truvà sti moduli ccà.
Packages
I pacchetti sò basicamente un altru modu per urganizà u nostru codice nantu à i moduli. Un veru prughjettu pò cuntene centinaie o ancu millaie di moduli è cù u tempu u nostru repertoriu sarà gonfiatu cù tanti schedari. Dunque, un approcciu megliu hè di urganizà moduli cunnessi in un pacchettu chì face u pacchettu un cuntainer per parechje moduli.
Un novu repertoriu hè aghjuntu à u prughjettu è tutti i moduli cunnessi sò aghjuntu à quellu repertoriu. Per esempiu, pensate à un centru cummerciale. Ci sò diverse sezioni per l'omi, donne è vestiti di i zitelli in un centru cummerciale chì sò cum'è pacchetti. Ogni rùbbrica hà zoni diffirenti per diversi tipi di prudutti cum'è scarpi, t-shirts è giacche. Pensate à questi cum'è moduli.
Videmu, cumu creà è aduprà pacchetti in Python.
Prima, aghjunghje un novu repertoriu da u pannellu di prughjettu. Chjamemu "eCommerce". Stu pacchettu cuntene tutti i moduli ligati à una applicazione di eCommerce.
Hè sempre un repertoriu viotu è per cunvertisce in un pacchettu, avemu bisognu di creà un schedariu speciale in questu. Aghjunghjite un novu schedariu python in questu repertoriu è chjamate u schedariu "__init__". Hè una cunvenzione speciale in Python è quandu l'interprete Python vede un schedariu cù stu nome in un cartulare, tratta stu cartulare cum'è un pacchettu.
Avemu ancu un metudu alternativu è cuncisu per creà un pacchettu. Basta à cliccà u pannellu di u prugettu è crea un pacchettu Python da a lista. Chjamate "eCommerce" è basta. Crearà automaticamente un cartulare cù un schedariu Python chjamatu "__init__".
Avà, creemu un modulu in u pacchettu è chjamate "spedizione". In questu modulu, creemu una funzione simplice per calculà i costi di spedizione.
def calc_shipping():
print("calc_shipping")
Per accede à sta funzione in u nostru modulu principale, avemu da accede à u pacchettu di e-commerce. Una volta avemu dui metudi per impurtà stu modulu.
In u primu metudu, pudemu impurtà u modulu sanu è poi chjamà una funzione indipindente cum'è questu:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
In ogni casu, cù questu approcciu, chjamà una di e funzioni à stu modulu richiede un prefissu cù eCommerce.shipping.
Hè assai verbose. Allora, quandu u travagliu cù i pacchetti, spessu usemu u sicondu approcciu è aduprà u from
affirmazioni.
from eCommerce.shipping import calc_shipping
calc_shipping()
Se tenete parechje funzioni in un modulu, pudete impurtà tutte in una sola linea usendu virgule trà elli. Diciamu chì ci hè una altra funzione per calculà l'impositu in u nostru modulu di spedizione. Chì serà impurtatu cusì:
from eCommerce.shipping import calc_shipping, calc_tax
Pudete ancu impurtà moduli individuali è lascià e funzioni per esse chjamatu in una tappa dopu in u prugramma. Importemu u modulu di spedizione è dopu aduprà un operatore di punti per chjamà a funzione calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Conclude!
Pacchetti è Moduli sò assai impurtanti in Python. In particulare, quandu vulete travaglià cù un framework cum'è Django chì hè utilizatu per custruisce appiicazioni Web cù Python. Fighjeremu in Django durante un altru cursu Python.
Questa era l'ultima cunferenza convenzionale in questa serie. A prussima conferenza sviarà da u nostru formatu abituale è ampararemu alcuni casi d'utilizazione impurtanti in Python. Chì marcarà a fine di sta serie è andemu à a nostra prossima serie Python. Stà sintonizatu per quessa.
Lascia un Audiolibro