Python-da Inheritance (nümunələrlə)

Kamal Novruzov
Pragmatech
Published in
4 min readSep 12, 2020

Inheritance obyekt yönümlü proqramlaşdırmanın ən sadə konspetlərindən biridir. Inheritance proqramlaşdırmada və tətbiqlərin hazırlanmasında geniş istifadə olunur. Bu məqalədə mən Python-da inheritance-dan və fərqli inheritance növlərindən danışacağam.

Pythonda inheritance nədir?

İnheritance obyekt yönümlü proqramlaşdırmada real həyatdan, insanlar arasında olan miras alma mədəniyyətindən təsirlənərək yaradılmışdır. Ən primitiv misal olaraq,biz anadan olduğumuz zaman müəyyən xasiyyətlərimiz atamızdan və ya anamızdan bizə keçir. Pythonda miras alma, bir sinifin bəzi xüsusiyyətlərini və ya metodlarını əldə etdiyi sinifə (uşaq sinfinə) ötürmə qabiliyyətidir. Inheritance vasitəsilə biz müəyyən class-lar arasında əlaqə qururuq. Misal üçün türk dilləri Altay dil qrupuna aiddir. Buna görə də biz türk dilləri arasında müəyyən əlaqələr qura bilirik.

Burda göstərilən Altay dili ana və yaxud da təməl dil (parent class) olaraq göstərilir digər dillər isə övladları (child class) və ya əldə olunan dillər kimi bilinir.

Python inheritance nümunəsi:

Bir class-ı əldə etmək üçün bizim sadəcə ondan əvvəl yaradılan class-ın (parent class) adını yazmağımız kifayətdir.

Yazdığım kodda da göstərildiyi kimi, iki class göstərilmişdir (İnsan və İşçi). İşçi classı İnsan classından miras alınaraq yaradılmışdır. Pass ifadəsi isə boş class yaradılması üçün istifadə olunur.

Python-da inheritance növləri

Biz class-lar arasında müxtəlif münasibətlər qura bilərik. Python-da inheritance-ın 5 növü vardır. Gəlin hər birinə ayrı-ayrılıqda baxaq.

1. Python-da Single Inheritance

Single inheritence-da yalnız bir class digərindən miras alır.

Kod:

Output:

Və budur, biz İnsan class-ından miras alaraq işçi class-ını yaratdıq.İnheritance-ın bizə gətirdiyi əsas üstünlük isə, biz daha öncə yazdığımız kodu yenidən istifadə edə bilirik.

2. Python-da Multilevel Inheritance

Python multilevel inheritance-ni dəstəkləyir yəni, bu o deməkdir ki, miras almaqda heç bir limit yoxdur. Bir sinifdən digərinə miras qalan, bir sinifdən miras alaraq çox səviyyəli miras alan class-lar əldə edə bilərik.

Kod:

Output:

Budur, Test3 class-ı Test1 və Test2-nin methodlarından və propertilərindən istifadə edə bilir çünki, onlar yuxarıdan aşağıya doğru bir-birindən miras alıb. Ancaq bunu qeyd olaraq götürə bilərsiniz ki, Test2 class-ı Test3 class-nın methodlarından istifadə edə bilmir.

3. Python-da Multiple Inheritance

İndiyə qədər hər dəfə yalnız bir sinifdən miras alırdıq. Multiple inheritance-la birdən çox sinifdən miras almağımıza imkan verdiyini görəcəyik. Buna nail olmaq üçün vergüllə ayrılmış birdən artıq sinif istifadə edə bilərik.

Kod:

Output:

Gördüyünüz kimi Test4 class-ı birbaşa Test1, Test2 və Test3 class-larının metodlarını və propertilərini miras alır.

4. Python-da Hierarchical Inheritance

Hierarchical inheritance-da bir sinif birdən çox sinif tərəfindən miras alınır. Bunu diaqramla görüb başa düşmək daha asandır.

Kod:

Output:

5. Python-da Hybrid Inheritance

Hibrid termini inheritance-ın birdən çox növün qarışığı olduğunu izah edir. Hibrid miras müxtəlif miras növlərinin birləşməsidir.

Kod:

Output:

Yekun

Bu məqalədə, mənobyekt yönümlü proqramlaşdırmada Python-da inheritance konsepti haqqında danışdım. Miras almadan istifadə edərək xassələri(property) və ya metodları bir class-dan digərinə necə ötürə biləcəyimizi gördük. Bu Python-da inheritance məqaləsində, inheritance növləri, funksiyaları və metodlarından da danışdım.

--

--