CodeGym /Kurslar /Python SELF AZ /Öz paketini yaratmaq

Öz paketini yaratmaq

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

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

# __init__.py
from .module1 import func1
from .module2 import func2
module1.py faylının məzmunu

# module1.py
def func1():
    return "Funksiya 1"
module2.py faylının məzmunu

# module2.py
def func2():
    return "Funksiya 2"

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.pymodule2.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.pymodule2.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ə, func1func2 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.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION