Բառը[Թաքցնել][Ցուցադրում]
Այս դասախոսությունը կտարածվի Python-ի մոդուլների և փաթեթների շուրջ:
Դրանք ձեր կոդը ֆայլերի տեսքով կազմակերպելու միջոց են և իսկապես կարևոր են, եթե մտադիր եք վեբ հավելվածներ կառուցել Python-ով:
մոդուլներ
Python-ում մոդուլը հիմնականում ֆայլ է python կոդով, որը մենք օգտագործում ենք մեր կոդը ֆայլերի մեջ կազմակերպելու համար: Մտածեք դրա մասին, ինչպես սուպերմարկետի հատվածները: Երբ գնում եք սուպերմարկետ, կան մրգերի, բանջարեղենի, մաքրող միջոցների և այլնի տարբեր բաժիններ: Դուք չեք տեսնում մեկ բաժին բոլոր ապրանքներով:
Ծրագրավորման մեջ նույն հասկացությունն է: Main.py-ում մեր ամբողջ կոդը բոլոր գործառույթներով և դասերով գրելու փոխարեն, մենք բաժանում ենք մեր կոդը մի քանի ֆայլերի: Յուրաքանչյուր ֆայլ կոչվում է մոդուլ: Դրանով ոչ միայն մեր կոդը ավելի լավ կազմակերպված և կառուցվածքային է, այլև մենք հնարավորություն ունենք կրկին օգտագործելու մեր կոդը: Եկեք դա տեսնենք օրինակով:
Սահմանենք քաշը ֆունտից կիլոգրամի փոխարկելու երկու ֆունկցիա և հակառակը։
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Այժմ մենք կարող ենք վերցնել այս երկու գործառույթները և տեղադրել դրանք առանձին մոդուլի մեջ, որը կոչվում է «փոխարկիչներ», այնուհետև այն կարող է ներմուծվել ցանկացած ծրագրի մեջ, որն անհրաժեշտ է փոխարկիչի այս գործառույթներին: Թույլ տվեք ցույց տալ ձեզ, թե ինչպես դա անել:
Եկեք բացենք մեր նախագծի վահանակը և աջ սեղմենք նախագծի վրա և ավելացնենք նոր ֆայլ: Մենք այս ֆայլը կոչելու ենք «Converters.py»:
Այժմ պատճենեք կոդը լռելյայն ֆայլից և տեղադրեք այն «Converters.py»-ում:
Դրանով մենք մաքրել ենք մեր հիմնական մոդուլը և այն չի փքված տարբեր գործառույթներով: Քանի որ մենք ավելի շատ գործառույթներ ենք գրում դասերի հետ, մենք դրանք դնում ենք իրենց համապատասխան մոդուլներում: Մոդուլը պետք է պարունակի բոլոր հարակից գործառույթներն ու դասերը: Այժմ մենք ցանկանում ենք փոխարկիչների մոդուլը ներմուծել մեր հավելվածի մոդուլ: Դա անելու համար գրեք import converters
վերևում առանց «.py» ընդլայնման:
Մենք կարող ենք մուտք գործել մոդուլի անդամներ՝ օգտագործելով մեթոդներին նման կետերի օպերատոր:
70 կգ-ը փոխարկենք ֆունտի.
Կա նաև մեկ այլ շարահյուսություն մոդուլների ներմուծման համար։ Ամբողջ մոդուլը ներմուծելու փոխարեն մենք կարող ենք ներմուծել կոնկրետ գործառույթներ այդ մոդուլից։ Մենք կարող ենք մուտքագրել from Converters import
և սեղմեք «control + space»՝ հասանելի գործառույթների ցանկը ցուցադրելու համար: Դրանով մենք կարող ենք ուղղակիորեն զանգահարել այս գործառույթը:
Վարժություն
Ահա ձեր վարժությունը.
Սա կապված է դասախոսության վարժության հետ, որտեղ մենք քննարկեցինք «օղակների համարորտեղ մենք գրեցինք ծրագիր՝ ցանկից ամենամեծ թիվը պարզելու համար
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Այս կոդը ներկայումս կազմակերպություն չունի: Մենք չունենք որևէ գործառույթ կամ մոդուլ, և ծրագիրը գրված է մեկ ֆայլում: Դա նորմալ է փոքր ծրագրերի համար, բայց քանի որ ձեր ծրագրերը մեծանում են, դուք պետք է պատշաճ կերպով կազմակերպեք ձեր կոդը դասերի և մոդուլների մեջ: Հետևաբար, որպես այս վարժության մի մաս, ես ուզում եմ, որ դուք գրեք գործառույթ, կոչեք այն find_max
. Այս ֆունկցիան պետք է վերցնի ցուցակը և վերադարձնի այդ ցուցակի ամենամեծ թիվը: Դրանից հետո շարունակեք և տեղադրեք այս գործառույթը առանձին մոդուլի մեջ, հանեք այն այստեղից և դրեք այն կոչվող մոդուլի մեջ utils
. Այս մոդուլը պետք է պարունակի մի շարք օգտակար գործառույթներ: Ներմուծել utils
մոդուլը ընթացիկ մոդուլի մեջ և զանգահարեք find_max
ֆունկցիան։ Ի վերջո, ստացեք արդյունքը և տպեք այն տերմինալի վրա:
Այս վարժությունը մի փոքր դժվար է, բայց հեշտ իրագործելի:
լուծում
Սկսեք ֆունկցիա սահմանելով find_max
և ավելացրեք պարամետր, որը կոչվում է թվեր: Այս ֆունկցիայի ներսում գրեք ցուցակում ամենամեծ թիվը գտնելու ալգորիթմը:
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Պահպանեք այս կոդը «utils.py» ֆայլում՝ որպես մոդուլ:
Վերադառնալ մեր հիմնական ծրագրին, պարզապես ներմուծեք մոդուլը երկու շարահյուսություններից որևէ մեկով և պարզապես գործարկեք տրամաբանությունը:
Մի բան, որ ես պետք է ձեր ուշադրությունը հրավիրեմ, դա խարխլվածն է max
. Դրա պատճառն այն է max
Python-ում ներկառուցված ֆունկցիա է, և մենք այն վերասահմանում ենք: Այսպիսով, սա նախազգուշացում է Python կոմպիլյատոր որ մենք այլևս չենք կարող օգտագործել max որպես իր ներկառուցված ֆունկցիա:
Ներկառուցված մոդուլներ Python-ում
Python-ը գալիս է ստանդարտ գրադարանով, որը պարունակում է մի քանի մոդուլներ ընդհանուր առաջադրանքների համար, ինչպիսիք են նամակներ ուղարկելը, ամսաթիվը և ժամը աշխատելը, պատահական արժեքներ և գաղտնաբառեր ստեղծելը և այլն: Այնքան շատ մոդուլներ կան արդեն ներկառուցված Python-ում, ինչը նշանակում է, որ արդեն կան բազմաթիվ ֆունկցիոնալություններ, որոնք մենք կարող ենք նորից օգտագործել: Դուք կարող եք գտնել այս մոդուլները այստեղ.
Փաթեթներ
Փաթեթները, ըստ էության, մեր կոդը մոդուլների վերևում կազմակերպելու ևս մեկ միջոց են: Իրական նախագիծը կարող է պարունակել հարյուրավոր կամ նույնիսկ հազարավոր մոդուլներ, և ժամանակի ընթացքում մեր գրացուցակը կփքվի այդքան շատ ֆայլերով: Հետևաբար, ավելի լավ մոտեցում է փաթեթի ներսում հարակից մոդուլների կազմակերպումը, որը փաթեթը դարձնում է մի քանի մոդուլների համար նախատեսված կոնտեյներ:
Նախագծին ավելացվում է նոր գրացուցակ և բոլոր հարակից մոդուլները ավելացվում են այդ գրացուցակում: Որպես օրինակ, մտածեք առևտրի կենտրոնի մասին: Առևտրի կենտրոնում կան տղամարդկանց, կանանց և երեխաների հագուստի տարբեր բաժիններ, որոնք նման են փաթեթների: Յուրաքանչյուր բաժին ունի տարբեր տարածքներ տարբեր տեսակի ապրանքների համար, ինչպիսիք են կոշիկները, շապիկները և բաճկոնները: Մտածեք դրանք որպես մոդուլներ:
Տեսնենք, թե ինչպես ստեղծել և օգտագործել փաթեթներ Python-ում:
Նախ, ծրագրի վահանակից նոր գրացուցակ ավելացրեք: Եկեք այն անվանենք «էլեկտրոնային առևտուր»: Այս փաթեթը կպարունակի էլեկտրոնային առևտրի հավելվածի հետ կապված բոլոր մոդուլները:
Այն դեռ դատարկ գրացուցակ է, և այն փաթեթի վերածելու համար մենք պետք է դրա մեջ հատուկ ֆայլ ստեղծենք: Այս գրացուցակում ավելացրեք նոր python ֆայլ և անվանեք այդ ֆայլը «__init__»: Դա Python-ում հատուկ կոնվենցիա է, և երբ Python թարգմանիչը գրացուցակում տեսնում է այս անունով ֆայլ, այն վերաբերվում է այս գրացուցակին որպես փաթեթ:
Մենք ունենք նաև փաթեթ ստեղծելու այլընտրանքային և հակիրճ մեթոդ: Պարզապես աջ սեղմեք նախագծի վահանակի վրա և ցանկից ստեղծեք Python փաթեթ: Անվանեք այն «eCommerce» և վերջ: Այն ավտոմատ կերպով կստեղծի «__init__» անունով Python ֆայլով գրացուցակ:
Այժմ եկեք փաթեթում ստեղծենք մոդուլ և անվանենք այն «առաքում»: Այս մոդուլում եկեք ստեղծենք առաքման ծախսերը հաշվարկելու պարզ գործառույթ:
def calc_shipping():
print("calc_shipping")
Այս գործառույթը մեր հիմնական մոդուլում մուտք գործելու համար մենք պետք է մուտք գործենք այն էլեկտրոնային առևտրի փաթեթի միջոցով: Կրկին մենք ունենք այս մոդուլը ներմուծելու երկու եղանակ:
Առաջին մեթոդով մենք կարող ենք ներմուծել ամբողջ մոդուլը և այնուհետև անկախ ֆունկցիա կանչել այսպես.
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Այնուամենայնիվ, այս մոտեցմամբ գործառույթներից մեկը այս մոդուլին կանչելու համար անհրաժեշտ է նախածանցով այն տեղադրել eCommerce.shipping.
Դա շատ խոսուն է։ Այսպիսով, փաթեթների հետ աշխատելիս մենք հաճախ օգտագործում ենք երկրորդ մոտեցումը և օգտագործում ենք այն from
հայտարարության մեջ:
from eCommerce.shipping import calc_shipping
calc_shipping()
Եթե դուք ունեք մի քանի գործառույթ մեկ մոդուլում, կարող եք ներմուծել դրանք բոլորը մեկ տողում՝ օգտագործելով ստորակետներ դրանց միջև: Ենթադրենք, մեր առաքման մոդուլում կա հարկի հաշվարկման մեկ այլ գործառույթ: Այն կներմուծվի այսպես.
from eCommerce.shipping import calc_shipping, calc_tax
Դուք կարող եք նաև ներմուծել առանձին մոդուլներ և թողնել գործառույթները, որոնք կոչվելու են ծրագրի հետագա փուլում: Եկեք ներմուծենք մոդուլի առաքումը և այնուհետև օգտագործենք կետային օպերատոր՝ ֆունկցիան կանչելու համար calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Փաթաթել Up!
Փաթեթները և մոդուլները չափազանց կարևոր են Python-ում: Հատկապես, երբ ցանկանում եք աշխատել այնպիսի շրջանակի հետ, ինչպիսին Django-ն է, որն օգտագործվում է կառուցելու համար վեբ ծրագրեր Python-ի հետ։ Մենք կանդրադառնանք Ջանգոյին Python-ի մեկ այլ դասընթացի ժամանակ:
Սա այս շարքի վերջին պայմանական դասախոսությունն էր: Հաջորդ դասախոսությունը կշեղվի մեր սովորական ձևաչափից, և մենք կսովորենք Python-ում օգտագործման որոշ կարևոր դեպքեր: Դա կնշանակի այս շարքի ավարտը, և մենք կանցնենք մեր հաջորդ Python շարքին: Մնացեք դրա համար:
Թողնել գրառում