2.1 Paketlərlə tanışlıq
Paketlər — modulları direktoriyada quruluşlaşdırmağın bir yoludur. Paket — bu bir direktoriyadır, içərisində __init__.py faylı və bir və ya bir neçə modul yerləşir. Fayl __init__.py boş ola bilər və ya paket üçün inicializasiya kodu daxil edə bilər.
Paket/direktoriyanın quruluşuna nümunə
mypackage/
__init__.py
module1.py
module2.py
__init__.py faylının məzmunu |
|---|
|
module1.py faylının məzmunu |
|---|
|
module2.py faylının məzmunu |
|---|
|
Bu paketdəki funksiyaları istifadə edən kod nümunəsi:
import mypackage
print(mypackage.func1()) # Çıxış: Funksiya 1
print(mypackage.func2()) # Çıxış: Funksiya 2
Gəlin aşağıda öz paketimizi yazaq və eyni zamanda başqalarının paketlərinin necə işlədiyini anlayaq.
2.2 Öz paketimizi addım-addım yaradırıq
Addım 1: Paket strukturunun yaradılması
İlk addım olaraq paket üçün qovluq və fayl strukturunu yaratmaqdan başlayırıq. Məsələn, biz mypackage adlı bir paket yaradacağıq və bu paket iki moduldan ibarət olacaq: module1.py və module2.py.
Paket strukturunun nümunəsi:
mypackage/
__init__.py
module1.py
module2.py
Faylların təsviri:
-
__init__.py: Bu fayl boş ola bilər və ya paket üçün başlanğıc kodu saxlayır. Bu fayl Python-un qovluğu paket kimi tanımasına kömək edir. -
module1.pyvəmodule2.py: Bu fayllar funksiyaları, sinifləri və dəyişənləri saxlayır ki, siz öz paketinizə daxil edəsiniz.
Addım 2: Modullar üçün kod yazırıq
Sadə kod nümunələrini modullarımız üçün yazırıq.
module1.py
def func1():
return "Module1-dən Funksiya 1"
module2.py
def func2():
return "Module2-dən Funksiya 2"
__init__.py
Modullardakı funksiyaları paketin səviyyəsinə import etmək üçün onları __init__.py-yə əlavə edirik.
from .module1 import func1
from .module2 import func2
İndi paketi import etdikdə, func1 və func2 funksiyaları birbaşa əlçatan olacaq.
Addım 3: Paketi yoxlamaq
Eyni qovluqda, yəni mypackage qovluğu ilə eyni yerdə test.py faylı yaradın və bu faylda paketi istifadə edərək yoxlama aparın.
test.py
import mypackage
print(mypackage.func1()) # Çıxış: Module1-dən Funksiya 1
print(mypackage.func2()) # Çıxış: Module2-dən Funksiya 2
test.py faylını işlədərək paketinizin düzgün işlədiyinə əmin olun.
2.3 dir() funksiyasının istifadəsi
Modul və ya paket import etdikdə, siz dir() funksiyasını istifadə edib həmin modulda olan bütün mövcud atribut və metodların siyahısını əldə edə bilərsiniz. Bu xüsusilə yeni və sizə tanış olmayan modulla işlədikdə faydalıdır, çünki onun hansı funksiyaları və sinifləri təqdim etdiyini tez öyrənə bilərsiniz.
Misal: Standart math modulunun araşdırılması
Gəlin, standart math modulunu araşdırmaq üçün dir() funksiyasının istifadəsini misal olaraq nəzərdən keçirək.
import math
print(dir(math))
Bu kod math modulunu import edir və bütün mövcud atribut və metodların siyahısını ekrana çıxarır. Nəticə təxminən belə görünəcək:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan',
'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1',
'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf',
'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod',
'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
Bu siyahıya math modulunda müəyyən olunmuş bütün funksiyalar və sabitlər, məsələn, sin, cos, tan, pi və digər funksiyalar daxildir.
Öz modullarınız üçün dir() istifadəsi
dir() funksiyasını həmçinin öz (custom) modullarınız üçün də istifadə edə bilərsiniz. Tutaq ki, sizin mymodule.py adlı faylınız var və onun tərkibi belədir:
# mymodule.py
def greet(name):
return f"Salam, {name}!"
pi = 3.14159
Bu modulu import edə və onun tərkibini araşdırmaq üçün dir() funksiyasını istifadə edə bilərsiniz:
import mymodule
print(dir(mymodule))
Nəticə aşağıdakı kimi olacaq:
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__',
'greet', 'pi']
Siyahıya mymodule modulunun 8 xidməti atributu (alt xətlərlə qeyd olunub) daxildir, və sonda sizin greet metodu və pi dəyişəni göstərilir.
GO TO FULL VERSION