Table of Contents[Kache][Montre]
Konferans sa a pral kouvri modil yo ak pakè nan Python.
Yo se yon fason yo òganize kòd ou a nan fòm nan dosye epi yo vrèman enpòtan si ou gen entansyon bati aplikasyon entènèt ak Python.
Modil
Yon modil nan Python se fondamantalman yon dosye ki gen kèk kòd piton ke nou itilize yo òganize kòd nou an nan dosye. Panse a li tankou seksyon nan yon makèt. Lè ou ale nan yon makèt gen diferan seksyon pou fwi, legim, pwodui netwayaj elatriye Ou pa wè yon seksyon ak tout pwodwi yo.
Se menm konsèp nan pwogramasyon an. Olye pou nou ekri tout kòd nou an ak tout fonksyon ak klas nan main.py, nou kraze kòd nou an nan plizyè dosye. Chak fichye refere li kòm yon modil. Avèk sa a, non sèlman kòd nou an pi byen òganize ak estriktire, men tou nou gen kapasite pou reitilize kòd nou an. Ann wè li atravè yon egzanp.
Ann defini de fonksyon pou konvèti pwa soti nan liv nan kilogram ak vis vèrsa.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Koulye a, nou ka pran de fonksyon sa yo epi mete yo nan yon modil separe ki rele "konvètisè", ak Lè sa a, li ka enpòte nan nenpòt pwogram ki bezwen fonksyon sa yo konvètisè. Kite m montre w kijan pou w fè sa.
Ann louvri panèl pwojè nou an epi klike sou pwojè a epi ajoute yon nouvo dosye. Nou pral rele dosye sa a "Converters.py".
Koulye a, kopye kòd ki soti nan dosye a default epi kole li nan "Converters.py la".
Avèk sa a, nou te netwaye modil prensipal nou an epi li pa gonfle ak fonksyon diferan. Kòm nou ekri plis fonksyon ak klas, nou mete yo nan modil korespondan yo. Yon modil ta dwe genyen tout fonksyon ki gen rapò ak klas yo. Koulye a, nou vle enpòte modil konvètisè yo nan modil aplikasyon nou an. Pou fè sa, ekri import converters
sou tèt san ekstansyon ".py".
Nou ka jwenn aksè nan manm yo nan yon modil lè nou itilize yon operatè pwen ki sanble ak metòd.
Ann konvèti 70 kg an liv:
Genyen tou yon lòt sentaks pou enpòte modil. Olye pou yo enpòte modil la tout antye, nou ka enpòte fonksyon espesifik nan modil sa a. Nou ka tape from Converters import
epi peze "kontwòl + espas pou montre lis fonksyon ki disponib yo. Avèk sa a, nou ka dirèkteman rele fonksyon sa a.
Fè egzèsis
Isit la se egzèsis ou a.
Sa a gen rapò ak yon egzèsis nan konferans la kote nou te diskite "pou pasan” kote nou te ekri yon pwogram pou chèche konnen pi gwo nimewo nan yon lis
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Kòd sa a pa gen okenn òganizasyon kounye a. Nou pa gen okenn fonksyon oswa modil epi pwogram nan ekri nan yon sèl dosye. Sa se oke pou ti pwogram men kòm pwogram ou yo ap grandi, ou bezwen byen òganize kòd ou a nan klas ak modil. Se poutèt sa, kòm yon pati nan egzèsis sa a, mwen vle ou ekri yon fonksyon, rele li find_max
. Fonksyon sa a ta dwe pran yon lis epi retounen pi gwo nimewo nan lis sa a. Apre sa ale pi devan epi mete fonksyon sa a nan yon modil separe, ekstrè li soti isit la epi mete l nan yon modil yo rele utils
. Modil sa a ta dwe genyen yon pakèt fonksyon sèvis piblik. Enpòte la utils
modil nan modil aktyèl la epi rele find_max
fonksyon. Finalman, jwenn rezilta a epi enprime li sou tèminal la.
Egzèsis sa a se yon ti kras defi, men fasil pou fè.
Solisyon
Kòmanse pa defini yon fonksyon find_max
epi ajoute yon paramèt ki rele nimewo. Anndan fonksyon sa a, ekri algorithm pou jwenn pi gwo nimewo nan yon lis.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Sove kòd sa a nan yon fichye "utils.py" kòm yon modil.
Retounen nan pwogram prensipal nou an, jis enpòte modil la pa youn nan de sentaks yo epi tou senpleman egzekite lojik la.
Youn nan bagay, mwen bezwen pote atansyon ou a se febli a max
. Rezon ki fè la pou sa se la max
se yon fonksyon entegre nan Python epi n ap redefini li. Se konsa, sa a se yon avètisman soti nan Python du ke nou pa ka itilize max kòm fonksyon entegre li yo.
Modil entegre nan Python
Python vini ak yon bibliyotèk estanda ki gen plizyè modil pou travay komen tankou voye imèl, travay ak dat ak lè, jenere valè o aza ak modpas ak sou sa. Gen anpil modil ki deja bati nan Python ki vle di gen deja anpil fonksyonalite ke nou ka itilize ankò. Ou ka jwenn modil sa yo isit la.
Kontribisyon
Pakè yo se fondamantalman yon lòt fason yo òganize kòd nou an sou tèt modil yo. Yon pwojè reyèl ka genyen dè santèn oswa menm dè milye de modil ak sou tan anyè nou an ap vin gonfle ak anpil dosye. Se poutèt sa, yon pi bon apwòch se òganize modil ki gen rapò andedan yon pake ki fè pake a yon veso pou modil miltip.
Yo ajoute yon nouvo anyè nan pwojè a ak tout modil ki gen rapò yo ajoute nan anyè sa a. Kòm yon egzanp, panse a yon sant komèsyal. Gen diferan seksyon pou rad gason, fanm ak timoun nan yon sant komèsyal ki se tankou pakè. Chak seksyon gen diferan zòn pou diferan kalite pwodwi tankou soulye, mayo ak jakèt. Panse a sa yo kòm modil.
Ann wè ki jan yo kreye epi sèvi ak pakè nan Python.
Premyèman, ajoute yon nouvo anyè nan panèl pwojè a. Ann rele li "eCommerce". Pake sa a pral genyen tout modil ki gen rapò ak yon aplikasyon eCommerce.
Li toujou yon anyè vid epi konvèti li nan yon pake, nou bezwen kreye yon dosye espesyal nan li. Ajoute yon nouvo fichye python nan anyè sa a epi nonmen fichye sa a "__init__". Se yon konvansyon espesyal nan Python epi lè entèprèt Python wè yon dosye ki gen non sa a nan yon anyè, li trete anyè sa a kòm yon pake.
Nou gen tou yon metòd altènatif ak kout pou kreye yon pake. Jis klike sou panèl pwojè a epi kreye yon pake Python nan lis la. Non li "eCommerce" ak sa a li. Li pral otomatikman kreye yon anyè ak yon dosye Python ki rele "__init__".
Koulye a, ann kreye yon modil nan pakè a epi non li "anbake". Nan modil sa a, se pou yo kreye yon fonksyon senp pou kalkile pri anbake.
def calc_shipping():
print("calc_shipping")
Pou jwenn aksè nan fonksyon sa a nan modil prensipal nou an, nou dwe jwenn aksè nan li atravè pakè e-commerce la. Yon fwa ankò nou gen de metòd pou enpòte modil sa a.
Nan premye metòd la, nou ka enpòte modil la antye ak Lè sa a, rele yon fonksyon poukont li tankou sa a:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Sepandan, ak apwòch sa a, rele youn nan fonksyon yo nan modil sa a mande pou prefiks li ak eCommerce.shipping.
Sa se trè verbose. Se konsa, lè w ap travay ak pakè nou souvan itilize dezyèm apwòch la epi sèvi ak la from
deklarasyon.
from eCommerce.shipping import calc_shipping
calc_shipping()
Si ou gen plizyè fonksyon nan yon sèl modil ou ka enpòte yo tout nan yon sèl liy lè w itilize vigil ant yo. Ann di gen yon lòt fonksyon pou kalkile taks nan modil anbake nou an. Sa pral enpòte tankou sa a:
from eCommerce.shipping import calc_shipping, calc_tax
Ou kapab tou enpòte modil endividyèl epi kite fonksyon yo dwe rele nan yon etap pita nan pwogram nan. Ann enpòte anbake modil la epi sèvi ak yon operatè pwen pou rele fonksyon an calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Wrap Up!
Pakè ak modil yo trè enpòtan nan Python. Espesyalman, lè ou vle travay ak yon kad tankou Django ki itilize pou bati aplikasyon pou entènèt ak Python. Nou pral gade nan Django pandan yon lòt kou Python.
Sa a te dènye konferans konvansyonèl nan seri sa a. Pwochen konferans la pral devye de fòma nòmal nou an epi nou pral aprann kèk ka itilizasyon enpòtan nan Python. Sa pral make fen seri sa a epi nou pral ale nan pwochen seri Python nou an. Rete branche pou sa.
Kite yon Reply