Mündəricat[Gizlət][Göstər]
Bu mühazirə Python-da modulları və paketləri əhatə edəcək.
Onlar kodunuzu fayllar şəklində təşkil etməyin bir yoludur və Python ilə veb proqramlar yaratmaq niyyətindəsinizsə, həqiqətən vacibdir.
Modullar
Python-dakı modul, əsasən, kodumuzu fayllarda təşkil etmək üçün istifadə etdiyimiz bəzi python kodu olan bir fayldır. Bunu supermarketdəki bölmələr kimi düşünün. Supermarketə gedəndə meyvə, tərəvəz, təmizlik məhsulları və s. üçün müxtəlif bölmələr var. Bütün məhsulların olduğu bir bölmə görmürsən.
Proqramlaşdırmada eyni anlayışdır. Bütün kodlarımızı main.py-də bütün funksiyalar və siniflərlə yazmaq əvəzinə, kodumuzu bir neçə fayla bölürük. Hər bir fayl modul adlanır. Bununla nəinki kodumuz daha yaxşı təşkil edilmiş və strukturlaşdırılmışdır, həm də kodumuzdan təkrar istifadə etmək imkanımız var. Buna bir misal vasitəsilə baxaq.
Çəki funtdan kiloqrama və əksinə çevirmək üçün iki funksiya təyin edək.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
İndi biz bu iki funksiyanı götürüb “konvertorlar” adlı ayrıca modula yerləşdirə bilərik və sonra onu bu çevirici funksiyalarına ehtiyacı olan istənilən proqrama idxal etmək olar. Bunu necə edəcəyinizi sizə göstərim.
Layihə panelimizi açaq və layihənin üzərinə sağ klikləyib yeni fayl əlavə edək. Bu faylı “Converters.py” adlandıracağıq.
İndi kodu standart fayldan kopyalayın və “Converters.py” üzərinə yapışdırın.
Bununla biz əsas modulumuzu təmizləmişik və o, müxtəlif funksiyalarla şişirdilməyib. Siniflərlə daha çox funksiya yazdığımız üçün onları müvafiq modullara yerləşdiririk. Modulda bütün əlaqəli funksiyalar və siniflər olmalıdır. İndi biz çeviricilər modulunu tətbiq modulumuza idxal etmək istəyirik. Bunu etmək üçün yazın import converters
yuxarıda “.py” uzantısı olmadan.
Metodlara bənzər nöqtə operatorundan istifadə edərək modul üzvlərinə daxil ola bilərik.
70 kq-ı funta çevirək:
Modulları idxal etmək üçün başqa bir sintaksis də var. Bütün modulu idxal etmək əvəzinə, biz həmin moduldan xüsusi funksiyaları idxal edə bilərik. yaza bilərik from Converters import
və mövcud funksiyaların siyahısını göstərmək üçün “control + space” düyməsini basın. Bununla biz birbaşa bu funksiyanı çağıra bilərik.
Həyata
Budur məşqiniz.
Bu, müzakirə etdiyimiz mühazirədən bir məşqlə bağlıdır "döngələr üçün” siyahıdan ən böyük rəqəmi tapmaq üçün proqram yazdıq
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Bu kodun hazırda təşkilatı yoxdur. Bizim heç bir funksiya və ya modulumuz yoxdur və proqram bir faylda yazılıb. Bu kiçik proqramlar üçün uyğundur, lakin proqramlarınız böyüdükcə kodunuzu siniflərə və modullara düzgün şəkildə təşkil etməlisiniz. Buna görə də, bu məşqin bir hissəsi olaraq, bir funksiya yazmağınızı, onu çağırmağınızı istəyirəm find_max
. Bu funksiya siyahı götürməli və həmin siyahıdakı ən böyük rəqəmi qaytarmalıdır. Bundan sonra davam edin və bu funksiyanı ayrıca modula qoyun, buradan çıxarın və adlı modula qoyun utils
. Bu modulda bir sıra faydalı funksiyalar olmalıdır. idxal edin utils
modulu cari modula daxil edin və zəng edin find_max
funksiyası. Nəhayət, nəticəni əldə edin və terminalda çap edin.
Bu məşq bir az çətin, lakin asanlıqla həyata keçirilir.
Həll
Bir funksiyanı təyin etməklə başlayın find_max
və nömrələr adlı bir parametr əlavə edin. Bu funksiyanın daxilində siyahıda ən böyük ədədi tapmaq üçün alqoritmi yazın.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Bu kodu modul olaraq “utils.py” faylında saxlayın.
Əsas proqramımıza qayıdaq, modulu iki sintaksisdən biri ilə idxal edin və sadəcə məntiqi yerinə yetirin.
Bir şeyə diqqət yetirməliyəm ki, sarsıdılmışdır max
. Bunun səbəbi isə max
Python-da daxili funksiyadır və biz onu yenidən müəyyənləşdiririk. Beləliklə, bu bir xəbərdarlıqdır Python tərtibçisi ki, biz artıq max-ı daxili funksiya kimi istifadə edə bilmərik.
Python-da quraşdırılmış modullar
Python e-poçt göndərmək, tarix və vaxtla işləmək, təsadüfi dəyərlər və parollar yaratmaq və s. kimi ümumi tapşırıqlar üçün bir neçə moduldan ibarət standart kitabxana ilə gəlir. Python-da artıq qurulmuş o qədər çox modul var ki, bu o deməkdir ki, bizim təkrar istifadə edə biləcəyimiz çoxlu funksionallıq var. Bu modulları tapa bilərsiniz burada.
Paketlər
Paketlər kodumuzu modulların üstündə təşkil etməyin başqa bir yoludur. Həqiqi layihə yüzlərlə və hətta minlərlə moduldan ibarət ola bilər və zaman keçdikcə qovluğumuz çoxlu fayllarla dolacaq. Buna görə də, daha yaxşı yanaşma, paketi bir neçə modul üçün konteynerə çevirən paket daxilində əlaqəli modulları təşkil etməkdir.
Layihəyə yeni kataloq əlavə edilir və bütün əlaqəli modullar həmin kataloqa əlavə olunur. Məsələn, bir ticarət mərkəzini düşünün. Ticarət mərkəzində kişi, qadın və uşaq geyimləri üçün paket kimi müxtəlif bölmələr var. Hər bölmədə ayaqqabı, köynək və gödəkçə kimi müxtəlif növ məhsullar üçün fərqli sahələr var. Bunları modullar kimi düşünün.
Python-da paketləri necə yaratmağa və istifadə etməyə baxaq.
Əvvəlcə layihə panelindən yeni bir kataloq əlavə edin. Gəlin buna “e-ticarət” deyək. Bu paketdə e-ticarət tətbiqi ilə əlaqəli bütün modullar olacaq.
O, hələ də boş bir kataloqdur və onu paketə çevirmək üçün orada xüsusi fayl yaratmalıyıq. Bu qovluğa yeni python faylı əlavə edin və həmin faylı “__init__” adlandırın. Bu, Python-da xüsusi bir konvensiyadır və Python tərcüməçisi kataloqda bu ada malik faylı görəndə bu kataloqu paket kimi qəbul edir.
Paket yaratmaq üçün alternativ və qısa üsulumuz da var. Layihə panelinə sağ klikləyin və siyahıdan Python paketi yaradın. Bunun adını "e-ticarət" qoyun və bu qədər. O, avtomatik olaraq “__init__” adlı Python faylı ilə qovluq yaradacaq.
İndi paketdə modul yaradaq və onu “göndərmə” adlandıraq. Bu modulda göndərmə xərclərini hesablamaq üçün sadə bir funksiya yaradaq.
def calc_shipping():
print("calc_shipping")
Əsas modulumuzda bu funksiyaya daxil olmaq üçün biz ona e-ticarət paketi vasitəsilə daxil olmalıyıq. Bir daha bu modulu idxal etmək üçün iki üsulumuz var.
Birinci üsulda biz bütün modulu idxal edə və sonra müstəqil olaraq aşağıdakı kimi funksiya çağıra bilərik:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Lakin bu yanaşma ilə funksiyalardan birini bu modula çağırmaq üçün onun prefiksi tələb olunur eCommerce.shipping.
Bu çox müfəssəldir. Beləliklə, paketlərlə işləyərkən biz tez-tez ikinci yanaşmadan istifadə edirik və istifadə edirik from
bəyanat.
from eCommerce.shipping import calc_shipping
calc_shipping()
Bir modulda bir neçə funksiyanız varsa, onların arasında vergüllərdən istifadə edərək hamısını bir sətirdə idxal edə bilərsiniz. Tutaq ki, bizim göndərmə modulumuzda verginin hesablanması üçün başqa bir funksiya var. Bu belə idxal olunacaq:
from eCommerce.shipping import calc_shipping, calc_tax
Siz həmçinin fərdi modulları idxal edə və proqramın sonrakı mərhələsində çağırılacaq funksiyaları tərk edə bilərsiniz. Gəlin modul göndərilməsini idxal edək və sonra funksiyaya zəng etmək üçün nöqtə operatorundan istifadə edək calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Tamamlayın!
Python-da paketlər və modullar son dərəcə vacibdir. Xüsusilə, tikinti üçün istifadə olunan Django kimi bir çərçivə ilə işləmək istədiyiniz zaman veb tətbiqləri Python ilə. Başqa bir Python kursu zamanı Djanqonu araşdıracağıq.
Bu, bu seriyanın sonuncu şərti mühazirəsi idi. Növbəti mühazirə adi formatımızdan kənara çıxacaq və biz Python-da bəzi vacib istifadə hallarını öyrənəcəyik. Bu, bu seriyanın sonunu qeyd edəcək və biz növbəti Python seriyamıza keçəcəyik. Bunun üçün bizi izləyin.
Cavab yaz