Sinif və nümayəndə dəyişənləri

Daha öncə qeyd etdik ki, sahələr, yəni dəyişənlər həm siniflərə, həm də nümayəndələrə aid ola bilər. Sinif daxilində, lakin metod xaricində elan olunan dəyişənlər sinif dəyişənləri, metod daxilində elan olunanlar isə nümayəndə dəyişənləridir.

Gəlin konkret misal üzərində sinif və nümayəndə dəyişənlərini nəzərdən keçirək:

class Personal(): 
    count=0
    def __init__(self, name, pos): 
        self.name = name
        self.pos = pos
        print("{0} {1} vəzifəsinə qəbul
             edildi".format(self.name, self.pos))
        Personal.count += 1

p1 = Personal("Kərim Tahiroğlu", "müdir") 
print("Personal sayı: {0}".format(Personal.count))
p2 = Personal("Murad Talıblı", "menecer") 
print("Personal sayı: {0}".format(Personal.count)) 
print()
print("Müəssisədə vəzifələr:")
print(p1.pos)
print(p2.pos)
print()
print("Müəssisənin personalı:")
print(p1.name)
print(p2.name)

Gördüyünüz kimi burada count sinif dəyişənidir və ona sinif adını (indiki halda Personal) qeyd etməklə müraciət olunur. Bu dəyişən elan olunarkən qiyməti sıfır olaraq təyin edilir, konstruktor işə düşəndə isə bir vahid artırılır. Bundan başqa biz __init__() metodu daxilində iki dənə nümayəndə dəyişənini (self.name və self.pos) elan edirik. Bu dəyişənlərin önündə self parametrinin olması onların nümayəndəyə aid olduqlarını bildirir. Konstruktorun başlığında eyni adlı name və pos parametrləri olsa da Python onları qarışdırmır, Siz də qarışdırmayın 🙂 Nümayəndə dəyişənlərinə müraciət önlərinə obyektin adı (indiki halda p1 və p2) yazılmaqla həyata keçirilir.

Sinif və nümayəndə dəyişənləri” üçün bir şərh

Şərh üçün bağlıdır.