Ang lecture na ito ay aabot sa mga module at package sa Python.
Ang mga ito ay isang paraan upang ayusin ang iyong code sa anyo ng mga file at talagang mahalaga kung balak mong bumuo ng mga web application gamit ang Python
Module
Ang isang module sa Python ay karaniwang isang file na may ilang code ng python na ginagamit namin upang ayusin ang aming code sa mga file. Isipin ito tulad ng mga seksyon sa isang supermarket. Kapag pumunta ka sa isang supermarket mayroong iba't ibang mga seksyon para sa mga prutas, gulay, mga produktong panlinis atbp. Hindi mo nakikita ang isang seksyon sa lahat ng mga produkto.
Ito ay ang parehong konsepto sa programming. Sa halip na isulat ang lahat ng aming code kasama ang lahat ng mga function at klase sa main.py, hinati namin ang aming code sa maraming file. Ang bawat file ay tinutukoy bilang isang module. Sa pamamagitan nito, hindi lamang mas maayos at nakaayos ang aming code, ngunit mayroon din kaming kakayahang muling gamitin ang aming code. Tingnan natin ito sa pamamagitan ng isang halimbawa.
Tukuyin natin ang dalawang function para sa pag-convert ng timbang mula sa pounds sa kilo at vice versa.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Ngayon, maaari nating kunin ang dalawang function na ito at ilagay ang mga ito sa isang hiwalay na module na tinatawag na "mga converter", at pagkatapos ay maaari itong i-import sa anumang program na nangangailangan ng mga function ng converter na ito. Hayaan akong ipakita sa iyo kung paano gawin ito.
Buksan natin ang aming panel ng proyekto at i-right-click ang proyekto at magdagdag ng bagong file. Tatawagin namin ang file na ito na "Converters.py".
Ngayon ay kopyahin ang code mula sa default na file at i-paste ito sa “Converters.py”.
Sa pamamagitan nito, nalinis namin ang aming pangunahing module at hindi ito namamaga sa iba't ibang mga pag-andar. Habang nagsusulat kami ng higit pang mga function na may mga klase, inilalagay namin ang mga ito sa kanilang kaukulang mga module. Ang isang module ay dapat maglaman ng lahat ng mga kaugnay na function at klase. Ngayon, gusto naming i-import ang module ng mga converter sa aming module ng app. Upang gawin ito, sumulat import converters
sa itaas na walang extension na ".py".
Maa-access natin ang mga miyembro ng isang module sa pamamagitan ng paggamit ng dot operator na katulad ng mga pamamaraan.
I-convert natin ang 70 kg sa pounds:
Mayroon ding isa pang syntax para sa pag-import ng mga module. Sa halip na i-import ang buong module, maaari tayong mag-import ng mga partikular na function mula sa module na iyon. Maaari tayong mag-type from Converters import
at pindutin ang “control + space para ipakita ang listahan ng mga available na function. Sa pamamagitan nito, maaari naming direktang tawagan ang function na ito.
Magsanay
Narito ang iyong ehersisyo.
Ito ay nauugnay sa isang ehersisyo mula sa panayam kung saan tinalakay natin ang "para sa mga loop” kung saan nagsulat kami ng isang programa upang malaman ang pinakamalaking bilang mula sa isang listahan
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Ang code na ito ay kasalukuyang walang organisasyon. Wala kaming anumang mga function o module at ang programa ay nakasulat sa isang file. Okay lang iyon para sa maliliit na programa ngunit habang lumalaki ang iyong mga programa, kailangan mong maayos na ayusin ang iyong code sa mga klase at module. Samakatuwid, bilang bahagi ng pagsasanay na ito, nais kong magsulat ka ng isang function, tawagan ito find_max
. Ang function na ito ay dapat kumuha ng isang listahan at ibalik ang pinakamalaking numero sa listahang iyon. Pagkatapos nito sige at ilagay ang function na ito sa isang hiwalay na module, i-extract ito mula dito at ilagay ito sa tinatawag na module utils
. Ang module na ito ay dapat maglaman ng isang grupo ng mga function ng utility. I-import ang utils
module sa kasalukuyang module at tumawag find_max
function. Sa wakas, kunin ang resulta at i-print ito sa terminal.
Ang ehersisyo na ito ay medyo mahirap ngunit madaling gawin.
Solusyon
Magsimula sa pamamagitan ng pagtukoy ng isang function find_max
at magdagdag ng isang parameter na tinatawag na mga numero. Sa loob ng function na ito, isulat ang algorithm para sa paghahanap ng pinakamalaking numero sa isang listahan.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
I-save ang code na ito sa isang file na "utils.py" bilang isang module.
Bumalik sa aming pangunahing programa, i-import lamang ang module sa pamamagitan ng alinman sa dalawang syntax at simpleng isagawa ang logic.
Isang bagay, kailangan kong dalhin ang iyong pansin ay ang undermined max
. Ang dahilan nito ay ang max
ay isang built-in na function sa Python at nire-redefine namin ito. Kaya ito ay isang babala mula sa Python compiler na hindi na namin magagamit ang max bilang built-in na function nito.
Mga Built-in na Module sa Python
Ang Python ay may kasamang karaniwang library na naglalaman ng ilang mga module para sa mga karaniwang gawain tulad ng pagpapadala ng mga email, pagtatrabaho sa petsa at oras, pagbuo ng mga random na halaga at password at iba pa. Napakaraming module na naka-built na sa Python na nangangahulugang marami nang functionality na maaari nating gamitin muli. Mahahanap mo ang mga modyul na ito dito.
Pakete
Ang mga package ay karaniwang isa pang paraan upang ayusin ang aming code sa itaas ng mga module. Ang isang tunay na proyekto ay maaaring maglaman ng daan-daan o kahit libu-libong mga module at sa paglipas ng panahon ang aming direktoryo ay mapapalaki sa napakaraming mga file. Samakatuwid, ang isang mas mahusay na diskarte ay upang ayusin ang mga kaugnay na module sa loob ng isang pakete na ginagawang lalagyan ang package para sa maraming mga module.
Ang isang bagong direktoryo ay idinagdag sa proyekto at ang lahat ng kaugnay na mga module ay idinagdag sa direktoryong iyon. Bilang halimbawa, isipin ang isang mall. Mayroong iba't ibang mga seksyon para sa mga lalaki, babae at damit ng mga bata sa isang mall na parang mga pakete. Ang bawat seksyon ay may iba't ibang lugar para sa iba't ibang uri ng mga produkto tulad ng sapatos, t-shirt at jacket. Isipin ang mga ito bilang mga modyul.
Tingnan natin, kung paano lumikha at gumamit ng mga pakete sa Python.
Una, magdagdag ng bagong direktoryo mula sa panel ng proyekto. Tawagin natin itong “eCommerce”. Ang package na ito ay maglalaman ng lahat ng mga module na nauugnay sa isang eCommerce application.
Isa pa rin itong walang laman na direktoryo at para ma-convert ito sa isang package, kailangan nating gumawa ng espesyal na file dito. Magdagdag ng bagong python file sa direktoryo na ito at pangalanan ang file na “__init__”. Ito ay isang espesyal na kombensiyon sa Python at kapag ang Python interpreter ay nakakita ng isang file na may ganitong pangalan sa isang direktoryo, ituturing nito ang direktoryo na ito bilang isang pakete.
Mayroon din kaming alternatibo at maigsi na paraan upang lumikha ng isang pakete. I-right-click lamang ang panel ng proyekto at lumikha ng isang pakete ng Python mula sa listahan. Pangalanan itong "eCommerce" at iyon lang. Awtomatiko itong lilikha ng isang direktoryo na may Python file na pinangalanang "__init__".
Ngayon, gumawa tayo ng module sa package at pangalanan itong “shipping”. Sa modyul na ito, gumawa tayo ng simpleng function para sa pagkalkula ng mga gastos sa pagpapadala.
def calc_shipping():
print("calc_shipping")
Upang ma-access ang function na ito sa aming pangunahing module, kailangan naming i-access ito sa pamamagitan ng e-commerce package. Muli, mayroon kaming dalawang paraan upang mai-import ang modyul na ito.
Sa unang paraan, maaari naming i-import ang buong module at pagkatapos ay tumawag ng isang function nang nakapag-iisa tulad nito:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Gayunpaman, sa diskarteng ito, ang pagtawag sa isa sa mga function sa modyul na ito ay nangangailangan ng prefixing nito eCommerce.shipping.
Napaka-verbose niyan. Kaya, kapag nagtatrabaho sa mga pakete madalas naming ginagamit ang pangalawang diskarte at ginagamit ang from
pahayag.
from eCommerce.shipping import calc_shipping
calc_shipping()
Kung marami kang function sa isang module maaari mong i-import ang lahat sa isang linya sa pamamagitan ng paggamit ng mga kuwit sa pagitan ng mga ito. Sabihin nating may isa pang function para sa pagkalkula ng buwis sa aming module sa pagpapadala. Iyan ay mai-import tulad nito:
from eCommerce.shipping import calc_shipping, calc_tax
Maaari ka ring mag-import ng mga indibidwal na module at mag-iwan ng mga function na tatawagin sa susunod na yugto sa programa. I-import natin ang pagpapadala ng module at pagkatapos ay gumamit ng dot operator para tawagan ang function calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Balutin!
Napakahalaga ng mga Package at Module sa Python. Lalo na, kapag gusto mong magtrabaho sa isang balangkas tulad ng Django na ginagamit para sa pagbuo mga aplikasyon ng web gamit ang Python. Titingnan natin ang Django sa isa pang kurso sa Python.
Ito ang huling karaniwang panayam sa seryeng ito. Ang susunod na lecture ay lilihis mula sa aming karaniwang format at matututuhan namin ang ilang mahahalagang kaso ng paggamit sa Python. Mamarkahan nito ang pagtatapos ng seryeng ito at magpapatuloy tayo sa susunod na serye ng Python. Manatiling nakatutok para sa na.
Mag-iwan ng Sagot