Python proqramlaşdırma dili sinif (class), funksiya və digər verilənləri ayrı-ayrı fayllarda yerləşdirməyə və daha sonra digər proqramlarda istifadə etməyə imkan verir. Belə fayllar modullar adlanır. Modullardan istifadə etməklə irihəcmli proqramları daha kiçik hissələrə ayırıb proqram kodunun mürəkkəbliyini azaltmaq olar. Bundan başqa, modullar proqram kodlarının təkrar istifadəsini təmin edir. Belə ki, daha çox istifadə olunan funksiya və sinifləri hər dəfə hazırlamaq və ya kopyalamaq əvəzinə bir modulda təyin edib onlardan istənilən proqramda istifadə edə bilərik.
Yeni modulların hazırlanmasına keçməzdən öncə Python dilinin standard kitabxanasına daxil olan modulların istifadəsini nəzərdən keçirəcəyik.
Qeyd etdik ki, hər bir modulun tərkibində müxtəlif təyinatlı sinif, funksiya və digər verilənlər realizasiya edilərək saxlanılır. Biz modullara komponentlər kolleksiyası kimi də baxa bilərik. Modul daxilindəki bu komponentlər adlar və ya atributlar, modulun özü isə adlar məkanı (namespace) adlanır. Bir proqramda müəyyən modulun atributlarından (sinif, funksiya və s.) istifadə etmək üçün bu proqrama həmin modulun adı qoşulmalıdır, başqa sözlə, modul proqrama daxil edilməlidir.
Modulu qoşmaq üçün proqramın əvvəlində import instruksiyasından istifadə edilir. Bundan sonra modulun istənilən atributundan istifadə edilə bilər:
import modul
modul.atribut
Burada modul qoşulan modulun adı, atribut isə bu modula daxil olan istənilən sinif, funksiya və ya digər komponentdir.
Gəlin standart math modulunun sqrt() funksiyasından istifadə edərək kvadrat tənliyin köklərini tapan proqram hazırlayaq:
import math
a = float(input('a-nı daxil edin: '))
b = float(input('b-ni daxil edin: '))
c = float(input('c-ni daxil edin: '))
d = b**2 - 4*a*c
if d > 0:
x1 = (-b + math.sqrt(d)) / (2*a)
x2 = (-b - math.sqrt(d)) / (2*a)
print('x1=', x1)
print('x2=', x2)
elif d == 0:
x1 = -b / (2*a)
print('x1 = x2 = ', x1)
else:
print('Tənliyin həqiqi kökləri yoxdur.')
Daha bir neçə nümunəni nəzərdən keçirək. Aşağıdakı proqramda verilmiş iki ədədin ən böyük ortaq böləni (ƏBOB) və başqa bir ədədin faktorialı hesablanır:
>>> import math
>>> math.gcd(6, 9)
3
>>> math.factorial(5)
120
>>>
Modul adını ayama ilə əvəz etmək mümkündür. Uzun modul adlarında bu üsul xüsusilə əlverişlidir:
>>> import math as m
>>> m.gcd(6, 9)
3
>>> m.factorial(5)
120
>>>
Əgər atributlar önündə hər dəfə modulun adını yazmaq istəmiriksə, from…import * instruksiyasından istifadə edə bilərik:
>>> from math import *
>>> gcd(6, 9)
3
>>> factorial(5)
120
>>>
Bir modulun bütövlükdə deyil, yalnız tələb olunan adlarını daxil etmək üçün aşağıdakı yazılış formasından istifadə etməliyik:
>>> from math import gcd, factorial
>>> gcd(6, 9)
3
>>> factorial(5)
120
>>>
Moduldan daxil edilən atributlara da ayamalar qoşa bilərik. Bu bəzən fərqli modullardan olan eyniadlı atributları bir-birindən ayırmaq, bəzən də rahatlıq baxımından əlverişlidir:
>>> from math import gcd as ebob, factorial as fact
>>> ebob(6, 9)
3
>>> fact(5)
120
>>>
Proqrama eyni anda bir neçə modulu daxil etmək olar:
>>> import math
>>> import cmath
>>> math.sqrt(4)
2.0
>>> cmath.sqrt(-4)
2j
>>>
Daxil edilən modulları tək sətirdə də yazmaq olar:
>>> import math, cmath
>>> math.sqrt(4)
2.0
>>> cmath.sqrt(-4)
2j
>>>
Python proqramlaşdırma dilində ən çox istifadə olunan əməliyyatları yerinə yetirən funksiyalardan ibarət bir sıra standart modullar nəzərdə tutulmuşdur.