Modules (modullar)
İstifadə olunan bütün kodlar proqramistlər tərəfindən inkişaf etdirilirlər. Bəzi kodlar çox sadə olsa da, bəziləri çox mürəkkəbdir və bütün işi bir nəfərin görməsi proyektin bitməsi üçün verilmiş olan vaxtdan daha çoxunu tələb edir. Real həyatdan bir nümunə götürək, konsert tədbirinin təşkil olunması üçün lazım olan hərşeyi bir şəxsin təmin etməsi absürddür. Adətən lazım olan işlər komandalar və ya şəxslər arasında bölüşdürülür və hərə bir işi görür. Bunun nəticəsi olaraq bir nəfər tərəfindən çox uzun müddətdə başa çata biləcək iş birneçə şəxs tərəfindən qısa müddətdə başa çatır.
Eyni məntiq proqramlaşdırmada da istifadə olunur. Proqram modullara bölünür. İşin bölünməsi isə decomposition adlanır.
Modulun tərifi rəsmi dokumentasiyaya əsasən belədir: Module it is a file containing Python definitions and statements. which can be later imported and used when necessary.
Sonra lazım olduğunda import edilə bilərək istifadə olunan, içində python kodu saxlayan fayl python modulu adlanır.
Əgər əvvəl mövcud olan modulu istifadə edirsinizsə, vəya çətin bir işi görmək üçün əvvəl mövcud olmuş bir modulun üzərində dəyişikliklər edirsinizsə, siz modulun istifadəçisi sayılırsınız. Ya özünüz ya da digər proqramistlərin həyatını asanlaşdırmaq üçün tamamilə yeni bir modul yazmısınızsa, siz modulun (supplier) dəstəkləyicisi sayılırsınız.
Hər bir kitabın hissələri, paraqrafları və s. olduğu kimi, python modullarının da özünün classları, obyektləri, metodları və funksiyaları mövcuddur. Pythonun öz üstündə gələn modulları vardır, bundan əlavə olaraq gələcək səhifələrdə hansısa modulun necə internetdən yüklənməli olduğunu öyrənəcəyik.
Mövcud olan modulu koda daxil etmək üçün import
açar sözündən istifadə olunur. Eyni vaxtda bir və ya bir neçə modulu import etmək mümkündür. import
açar sözündən sonra import etmək istədiyimiz modulun adını yazmaq lazımdır. Məsələn.
vəya
Göstərilmiş nümunələrdə math
və sys
modul adlarıdır.
Namespace nədir?
Təsəvvür edin ki 3 dostunuz var və onların üçünün də Məhəmməd adında dostu var. 3 dostunuzun söhbətinə ortadan daxil olsanız və eşitsəniz ki, Məhəmməd haqqında danışırlar, soruşarsınız ki, hansı Məhəmməddən danışırsınız?
Namespace-ləri virtual mühit adlandırmaq olar, yəni dolayısıyla desək, math modulunun içində pi mövcuddur, ancaq siz özünüz myMath adında modul yaradıb onun içində başqa bir pi varlığını yarada bilərsiz.
Kod yazarkən necə bilmək lazımdır ki, mən hansı pi-ni işlədirəm? Çox sadə. pi-dən əvvəl onun hansı moduldan gəldiyini göstərərək. Məsəlçün:
Eyni vaxtda müxtəlif namespace-lərin eyni adlı entity-sini istifadə etmək olarmı? Bəli olar:
Sırf istədiyiniz entity-ləri də import edə bilərsiniz. Bunun üçün from açar sözü istifadə olunmalıdır. Hərfi tərcüməsi bucürdür "x modulundan y entity-sini import et". Lakin burda diqqətli olunması lazım olan məqamlar var. Bu halda siz birbaşa kodun yazıldığı faylın namespace-inə dəyişəni gətirdiyiniz üçün həmin dəyişən sonradan modifikasiya oluna bilər. Çünki həmin dəyişəni çağırmaq üçün gəldiyi modulu göstərməyə ehtiyac qalmır:
Yuxarıda göstərilmiş misalın daha aqresiv forması aşağıdakı nümunədir. *
işarəsi vasitəsilə bütün entity-ləri hazırki namespace-ə gətirmək etibarlı metod deyil və bundan yayınmaq lazımdır:
as açar sözü
Modullar import edilərkən qarışıqlığın qarşısını almaq üçün aliaslardan istifadə edilə bilər. Bunun üçün as açar sözündən istifadə etmək lazımdır. Hərfi tərcüməsi belədir: "x modulunu y adıyla import et". Məsələn, aşağıdakı misalda math modulu riyaziyyat adıyla import edilmişdir:
Entitylərə də alias təyin etmək mümkündür. Məsələn, aşağıdakı kodda math moduluna aid olan pi və sin entityləri uyğun olaraq myPI və mySIN adlarıyla import edilmişdir:
dir() funksiyası
dir() funksiyası vasitəsilə modul içindəki bütün entity-lərin adına baxmaq mümkündür. Məsələn:
math modulu
riyazi funksiyalar
Sadalananlardan başqa, math modulunun aşağıdakı metodları da mövcuddur:
pow() built-in funksiyadır və math-dan import edilməyə ehtiyacı yoxdur.
random modulu
Random modulu təsadüfi ədədlərin yaradılması üçün istifadə edilir.
random() funksiyası.
random modulunun random() funksiyası (0.0 <= x < 1.0) arasında təsadüfi float ədəd qaytarır.
random modulu hər hansı bir seed-i input kimi qəbul edərək həmin seed əsasında random bir dəyər qaytarır. Adətən hər proqram işə düşdükdə yeni ədəd yaranması üçün vaxt-dan seed kimi istifadə olunur.
seed() funksiyası.
Yuxarıda qeyd olunduğu kimi, əgər seed() funksiyası heç bir arqumentsiz işlədilərsə, hazırki vaxta görə seed təyin olunur. Bundan əlavə olaraq seed() funksiyasına hansısa integer arqument kimi daxil edilə bilər. Məsələn aşağıdakı nümunəyə baxaq:
Yuxarıda göstərilmiş kodu siz də öz komputerinizdə işlədin, komputerinizin float ədədləri hesablama gücündən asılı olaraq ya eyni ya da mənim nəticəmə çox bənzər bir nəticə əldə edəcəksiniz.
randint() və randrange() funksiyaları
Əgər təsadüfi integer ədəd əldə etmək istəyirsinizsə, bu funksiyalar köməyə çatacaq. Aralarında iki fərq var. randrange() heç vaxt yüksək dəyəri random ədəd kimi geri qaytarmır.
choice() və sample() funksiyaları
Bu funksiyalar əldə olan siyahıdan təsadüfi verilənləri seçmək üçün istifadə olunur. choice() funksiyası vasitəsilə empty olmuyan bir siyahıdan təsadüfi bir elementi seçmək mümkündür. sample() funksiyası vasitəsilə isə empty olmayan funksidan istədiyimiz qədər təsadüfi element seçə bilərik. Məsələn:
platform modulu
platform() funksiyası
platform() funksiyası avadanlığın xüsusiyyətləri, əməliyyat sistemi və interpreter-in versiyası kimi bir neçə məlumatı ekrana çıxarır.
machine() funksiyası
machine() əməliyyat sisteminin istifadə etdiyi prosessorun ümumi versiyasını ekrana çıxarır (x86_64 vəya x86)
processor() funksiyası
processor() funksiyası mümkün olduğu halda prosessorun əsl tam adını qaytarır.
system() funksiyası
system() funksiyası əməliyyat sisteminin adını string olaraq qaytarır
version() funksiyası
version() funksiyası əməliyyat sisteminin versiyasını string olaraq qaytarır
python_implementation() və python_version_tuple() funksiyaları
python_implementation() funksiyası pythonun hansı implementasiyasından istifadə etdiyiniz haqqında məlumat verir.
python_version_tuple() funksiyası quraşdırılmış python-un əsas(major) versiyası, köməkçi(minor) versiyası və patch leveli haqqında məlumat verir. Məsələn:
Last updated