Mövzunun əvvəlində qeyd etmişdik ki, modullar həm də proqram kodlarının təkrar istifadəsini təmin edir. Bu isə o deməkdir ki, daha çox istifadə olunan funksiya və sinifləri hər dəfə hazırlamaq və ya kopyalamaq əvəzinə onları bir modulda təyin edib istənilən proqramda işlətmək daha əlverişlidir.
Gəlin my_module adlı yeni bir modul düzəldək və daxilində bir neçə funksiya təyin edək:
import math
def absum(a, b):
s = 0
for i in range(a, b + 1):
s += i
return s
def quadequ(a, b, c):
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('No real roots.')
def cinstr(c, s):
n = 0
for i in s:
if c == i:
n += 1
return n
def wordlet(s):
for i in s:
print(i)
Biz öz modulumuzda sqrt() funksiyasından istifadə edəcəyik deyə başlanğıcda math modulunu daxil etməliyik. Gördüyünüz kimi, bir modul başqa bir modula daxil edilə bilər. Yuxarıdakı proqram kodunu skriptdə yazın və faylı my_module adı ilə yaddaşa verin.
İndi isə bu modulda təyin etdiyimiz funksiyalarla proqram hazırlayaq:
from my_module import *
print('Verilmiş aralıqdakı ədədlər cəmi')
x = int(input('Başlanğıc ədədi daxil edin: '))
y = int(input('Son ədədi daxil edin: '))
t = absum(x,y)
print('Cəm: ', t)
print('Kvadrat tənliyi')
a = float(input('a-nı daxil edin: '))
b = float(input('b-ni daxil edin: '))
c = float(input('c-ni daxil edin: '))
quadequ(a, b, c)
print('Verilmiş hərfin sözdəki sayı')
s = input('Sözü daxil edin: ')
c = input('Hərfi daxil edin: ')
print(cinstr(c, s))
print('Sözün hərf-hərf çapı')
z = input('Sözü daxil edin: ')
wordlet(z)
Gördüyünüz kimi, hər şey çox sadədir. Biz bu şəkildə öz modullarımızı hazırlayıb orada təyin etdiyimiz funksiyalardan tələb olunduğu zaman proqramlarımızda istifadə edə bilərik. Bu proqramı da skriptdə yazın və adını Test qoyaraq modul ilə eyni qovluqda yaddaşa verin. Sonra da icra edərək nəticələri yoxlayın.
Sonda modulların hazırlanması ilə bağlı bir-iki məsələyə də aydınlıq gətirək.
Modulları necə adlandırmalı?
Hazırladığınız modullar gələcəkdə həm özünüz, həm də başqaları tərəfindən istifadə olunacaq. Bu səbəbdən onlara anlaşılan və mənalı adlar verməlisiniz. Modulların adlandırılması dəyişənlərin adlandırılması kimidir, yəni burada da verəcəyiniz adlar latın hərfləri ilə yazılmalı, rəqəmlə başlamamalı və tərkibində rezerv sözlər olmamalıdır.
Modulları harada yerləşdirməli?
Bildiyiniz kimi, proqrama modullar daxil ediləndə interpretator onları sys.path dəyişənində qeyd edilən kataloqlarda (qovluqlarda) axtarır. Siz də hazırladığınız modulları bu kataloqlar daxilində yerləşdirə bilərsiniz. Lakin yaxşı olar ki, öz modullarınız üçün ayrıca bir qovluq düzəldib onların hamısını bir yerdə saxlayasınız. Bu zaman sys.path dəyişənində müvafiq dəyişiklik edərək bu qovluğu əlavə etməyi unutmayın.

