Python-da Sinif və Obyektlər
Bu məqalədə Obyekt Yönümlu Proqramlaşdırmada önəmli rol oynayan 2 əsas məsələ,sinif(class) və obyekt (object) haqqında məlumat verəcəm.
Sinif, istifadəçilər tərəfindən təyin olunan bir plan və ya obyektlərin yaradıldığı prototipdir.Siniflər məlumatları və funksiyanallığı bir yerə yığmaq üçün bir vasitədir.Yeni bir sinif yaratmaq,yeni bir obyekt tipi yaradır və və bu tipdən yeni bir nümayəndələrin qurulmasına icazə verir. Hər bir sinif nümayəndəsi(instance) vəziyyətini qorumaq üçün özünə bağlı xüsusiyyətlərə sahib ola bilər.Sinif nümayəndələri, vəziyyətini dəyişdirmək üçün metodlara da (sinfi tərəfindən təyin olunur) sahib ola bilər.
Sinifin təyin olunması
Python-da sinifi təyin etmək üçün “class” açar sözündən istifadə olunur.Sinfin gövdəsində də atributlar, yəni sinifin sahə və metodları elan edilir.
class MyNewClass:
pass
Yuxarıda yaratdığımız sinifin gövdəsinə heç bir atribut əlavə etmək istəmədik.Lakin bunu boş qoymaqda olmaz.Ona görə belə halda “pass” açar sözündən istifadə etməlik.Bu açar sözü heç bir dəyişikliyin olmayacağını bildirir.
Sinifə eyni zamanda aşağıdakılar daxildir.
1) Konstruktorlar (Constructor)
2) Nümayəndə atributları (Instance Attributes)
3) Sinif atributları (Class Attributes)
4) Metodlar (Methods)
class person:
count=0 #class attribute
def __init__(self): #constructor
self.name="unknown" #instance attribute
self.age=0 #instance attribute
def displayInfo(self): #method
print(self.name, self.age)
Yuxarıdakı kod nümunəsində person
sinif, __init__(self)
konstruktor,name
və age
nümayəndə atributları,displayInfo
isə person
sinifinin metodudur.
Python-da Obyektlər
Python-da Obyekt sadəcə məlumatların (dəyişənlərin) və bu məlumatlar üzərində işləyən metodların (funksiyaların) toplusudur. Eynilə, bir sinif bu obyekt üçün bir plandır.Sinfi bir evin eskizi (prototipi) kimi düşünə bilərik. Döşəmələr, qapılar, pəncərələr və s. haqqında bütün detalları özündə cəmləşdirir. Bu təsvirlərə əsasən evi tikirik. Ev obyektdir.Bir evin planından çox sayda ev düzəldilə bildiyindən, bir sinifdən bir çox obyekt yarada bilərik. Bir obyektə bir sinif nümayəndəsi də deyilir və bu obyektin yaradılması prosesinə instantasiya(instantiation) deyilir.İnstantiation ifadəsini sadə bir nümunə ilə izah edək.Bunun üçün ilk öncə bir aşağıdakı kimi bir sinif nümunəsi yaratmalıyıq.
class işçi():
vəzifəsi= 'mütəxəssis'
maaşi = 1000
vətəndaşlığı= ''
yası=
stajı=
samir=işçi()
Yuxarıdakı kod nümunəsində yaratdığımız “işçi” adında sinifi “samir” adında bir dəyişənə təyin etdik.Bu prosesə instantiation deyilir bununla biz yaratdığımız sinifi işlək hala gətirmiş oluruq.
Obyekt adətən aşağıdakılardan ibarətdir.
Vəziyyət(State): Bir obyektin atributları ilə təmsil olunur. Həm də bir obyektin xüsusiyyətlərini əks etdirir.
Davranış(Behavior): Bir obyektin metodları ilə təmsil olunur. Həm də bir obyektin digər obyektlərlə reaksiyasını əks etdirir.
Kimlik(İdentity): Bir obyektə bənzərsiz bir ad verir və bir obyektin digər obyektlərlə qarşılıqlı əlaqəsini təmin edir
__Init__ funksiyası və Self
Siniflər üçün təyin olunan metodlar arasında __İnit__ metodunun xüsusi yeri var.Bu metod sinifinin nümanyəndəsi yəni obyekt yaradılandan sonra işə düşür.
class Car:
# initializer
def __init__(self):
pass
Sinifin içərisində bu metodu təyin edəndə,ilk öncə self parametrindən istifadə olunmalıdır.Self ifadəsi sinfin numayəndəsini təmsil edir.Self açar sözündən istifadə edərək Pythonda sinifin xüsusiyyətlərinə və metodlarına daxil ola bilərik.
Mənbələr
https://www.programiz.com/python-programming/class
https://www.geeksforgeeks.org/python-classes-and-objects/
https://www.tutorialsteacher.com/python/python-class