Kini nga lecture magsangkap sa palibot sa mga module ug mga pakete sa Python.
Kini usa ka paagi aron maorganisar ang imong code sa porma sa mga file ug hinungdanon kaayo kung gusto nimo magtukod mga aplikasyon sa web gamit ang Python.
modules
Ang usa ka module sa Python usa ka file nga adunay pipila nga code sa python nga gigamit namon aron maorganisar ang among code sa mga file. Hunahunaa kini sama sa mga seksyon sa usa ka supermarket. Kung moadto ka sa usa ka supermarket adunay lain-laing mga seksyon alang sa mga prutas, utanon, mga produkto sa pagpanglimpyo ug uban pa. Dili nimo makita ang usa ka seksyon sa tanan nga mga produkto.
Parehas kini nga konsepto sa programming. Imbis nga isulat ang tanan namong code sa tanan nga mga gimbuhaton ug mga klase sa main.py, among gibungkag ang among code sa daghang mga file. Ang matag file gitawag nga module. Uban niini, dili lamang ang atong code nga mas maayo nga organisado ug structured, apan kita usab adunay katakus sa paggamit pag-usab sa atong code. Atong tan-awon kini pinaagi sa usa ka pananglitan.
Atong ipasabot ang duha ka mga gimbuhaton sa pag-convert sa gibug-aton gikan sa mga libra ngadto sa mga kilo ug vice versa.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Karon, mahimo natong kuhaon kining duha ka mga gimbuhaton ug ibutang kini sa usa ka bulag nga module nga gitawag og "mga converter", ug dayon kini mahimong ma-import ngadto sa bisan unsang programa nga nagkinahanglan niini nga mga function sa converter. Tugoti ako nga ipakita kanimo kung unsaon pagbuhat niini.
Atong ablihan ang atong panel sa proyekto ug i-right-click ang proyekto ug magdugang og bag-ong file. Tawgon namo kini nga file nga "Converters.py".
Karon kopyaha ang code gikan sa default file ug idikit kini sa "Converters.py".
Uban niini, among gilimpyohan ang among nag-unang module ug wala kini nabuak sa lainlaing mga gimbuhaton. Samtang nagsulat kami og dugang nga mga gimbuhaton sa mga klase, among gibutang kini sa ilang katugbang nga mga module. Ang usa ka module kinahanglan adunay tanan nga may kalabutan nga mga gimbuhaton ug mga klase. Karon, gusto namong i-import ang converters module sa among app module. Aron mahimo kini, pagsulat import converters
sa ibabaw nga wala ang extension nga ".py".
Mahimo natong ma-access ang mga miyembro sa usa ka module pinaagi sa paggamit sa dot operator nga susama sa mga pamaagi.
Atong i-convert ang 70 kg ngadto sa libra:
Adunay usab laing syntax alang sa pag-import sa mga module. Imbis nga i-import ang tibuuk nga module, mahimo naton nga i-import ang piho nga mga gimbuhaton gikan sa kana nga module. Maka-type mi from Converters import
ug pindota ang "kontrol + luna aron ipakita ang lista sa magamit nga mga gimbuhaton. Uban niini, mahimo natong direkta nga tawagan kini nga function.
ehersisyo
Ania ang imong ehersisyo.
Kini may kalabutan sa usa ka ehersisyo gikan sa lektyur diin atong gihisgutan "alang sa mga galong” diin misulat mi ug programa para mahibal-an ang pinakadaghang numero gikan sa usa ka lista
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Kini nga code sa pagkakaron walay organisasyon. Wala kami bisan unsang mga gimbuhaton o module ug ang programa gisulat sa usa ka file. Okay ra kana alang sa gagmay nga mga programa apan samtang nagdako ang imong mga programa, kinahanglan nimo nga organisahon ang imong code sa mga klase ug module. Busa, isip kabahin niini nga ehersisyo, gusto ko nga magsulat ka og function, tawga kini find_max
. Kini nga function kinahanglan magkuha usa ka lista ug ibalik ang labing kadaghan nga numero sa kana nga lista. Human niana ipadayon ug ibutang kini nga function sa usa ka bulag nga module, kuhaa kini gikan dinhi ug ibutang kini sa usa ka module nga gitawag utils
. Kini nga module kinahanglan adunay daghang mga function sa utility. Import ang utils
module ngadto sa kasamtangan nga module ug tawag find_max
function. Sa katapusan, kuhaa ang resulta ug i-print kini sa terminal.
Kini nga ehersisyo usa ka gamay nga mahagiton apan dali nga mahimo.
solusyon
Pagsugod pinaagi sa pagtino sa usa ka function find_max
ug idugang ang usa ka parameter nga gitawag og mga numero. Sa sulod niini nga function, isulat ang algorithm sa pagpangita sa pinakadako nga numero sa usa ka lista.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
I-save kini nga code sa usa ka file nga "utils.py" ingon usa ka module.
Balik sa among nag-unang programa, i-import lang ang module sa bisan hain sa duha ka syntax ug ipatuman lang ang logic.
Usa ka butang, kinahanglan nako nga dad-on ang imong atensyon mao ang nahuyang max
. Ang hinungdan niini mao ang max
usa ka built-in nga function sa Python ug among gi-redefine kini. Busa usa kini ka pasidaan gikan sa Python compiler nga dili na nato magamit ang max isip built-in function niini.
Gitukod nga mga Module sa Python
Ang Python adunay usa ka standard nga librarya nga adunay daghang mga module alang sa kasagaran nga mga buluhaton sama sa pagpadala sa mga email, pagtrabaho kauban ang petsa ug oras, paghimo og mga random nga kantidad ug mga password ug uban pa. Adunay daghan kaayo nga mga module nga natukod na sa Python nga nagpasabut nga adunay daghan na nga gamit nga mahimo natong magamit pag-usab. Makita nimo kini nga mga module dinhi.
packages
Ang mga pakete usa ka paagi sa pag-organisar sa among code sa ibabaw sa mga module. Ang usa ka tinuod nga proyekto mahimong adunay gatusan o bisan libu-libo nga mga module ug sa paglabay sa panahon ang among direktoryo mapuno sa daghang mga file. Busa, ang usa ka mas maayo nga paagi mao ang pag-organisar sa mga may kalabutan nga mga module sa sulod sa usa ka pakete nga naghimo sa pakete nga usa ka sulud alang sa daghang mga module.
Usa ka bag-ong direktoryo ang gidugang sa proyekto ug ang tanan nga may kalabutan nga mga module gidugang sa kana nga direktoryo. Pananglitan, hunahunaa ang usa ka mall. Adunay lain-laing mga seksyon alang sa mga lalaki, babaye ug mga sinina sa mga bata sa usa ka mall nga sama sa mga pakete. Ang matag seksyon adunay lain-laing mga dapit alang sa lain-laing mga matang sa mga produkto sama sa sapatos, t-shirts ug jackets. Hunahunaa kini nga mga module.
Atong tan-awon, kung giunsa paghimo ug paggamit ang mga pakete sa Python.
Una, pagdugang usa ka bag-ong direktoryo gikan sa panel sa proyekto. Tawgon nato kini nga "eCommerce". Kini nga pakete maglangkob sa tanan nga mga module nga may kalabutan sa usa ka aplikasyon sa eCommerce.
Kini usa pa ka walay sulod nga direktoryo ug aron mabag-o kini nga usa ka pakete, kinahanglan namon nga maghimo usa ka espesyal nga file niini. Pagdugang usa ka bag-ong python file sa kini nga direktoryo ug ngalan ang file nga "__init__". Kini usa ka espesyal nga kombensyon sa Python ug kung ang tighubad sa Python nakakita sa usa ka file nga adunay kini nga ngalan sa usa ka direktoryo, kini nga direktoryo giisip nga usa ka pakete.
Adunay usab kami usa ka alternatibo ug mubo nga pamaagi sa paghimo og usa ka pakete. Pag-right-click lang sa panel sa proyekto ug paghimo usa ka pakete sa Python gikan sa lista. Ngalan kini nga "eCommerce" ug mao kana. Awtomatiko kini nga maghimo usa ka direktoryo nga adunay file nga Python nga ginganlag "__init__".
Karon, maghimo kita ug module sa package ug nganlan kini nga "shipping". Niini nga module, maghimo kita ug usa ka yano nga function alang sa pagkalkula sa mga gasto sa pagpadala.
def calc_shipping():
print("calc_shipping")
Aron ma-access kini nga function sa among panguna nga module, kinahanglan namon nga ma-access kini pinaagi sa pakete sa e-commerce. Sa makausa pa aduna kitay duha ka paagi sa pag-import niini nga module.
Sa una nga pamaagi, mahimo naton i-import ang tibuuk nga module ug dayon tawagan ang usa ka function nga independente sama niini:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Bisan pa, sa kini nga pamaagi, ang pagtawag sa usa sa mga gimbuhaton sa kini nga module nanginahanglan pag-prefix niini eCommerce.shipping.
Kanang verbose kaayo. Mao nga, kung nagtrabaho kauban ang mga pakete kanunay namon gigamit ang ikaduha nga pamaagi ug gigamit ang from
pamahayag.
from eCommerce.shipping import calc_shipping
calc_shipping()
Kung adunay ka daghang mga gimbuhaton sa usa ka module mahimo nimong i-import silang tanan sa usa ka linya pinaagi sa paggamit sa mga koma sa taliwala nila. Ingnon ta nga adunay lain nga function alang sa pagkalkula sa buhis sa among module sa pagpadala. Kana ma-import sama niini:
from eCommerce.shipping import calc_shipping, calc_tax
Mahimo usab nimo nga i-import ang indibidwal nga mga module ug ibilin ang mga gimbuhaton nga tawagan sa ulahi nga yugto sa programa. Atong i-import ang module nga pagpadala ug dayon gamiton ang dot operator aron tawagan ang function calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Pagputos!
Ang mga Pakete ug Module labi ka hinungdanon sa Python. Ilabi na, kung gusto nimo magtrabaho sa usa ka balangkas sama sa Django nga gigamit alang sa pagtukod aplikasyon sa web uban sa Python. Atong tan-awon ang Django atol sa laing kurso sa Python.
Kini ang kataposang naandang lecture niini nga serye. Ang sunod nga lecture motipas gikan sa atong naandan nga pormat ug kita makakat-on sa pipila ka importante nga mga kaso sa paggamit sa Python. Kana magtimaan sa katapusan sa kini nga serye ug magpadayon kami sa among sunod nga serye sa Python. Pagbantay alang niana.
Leave sa usa ka Reply