Press "Enter" to skip to content

Python Static Değişkenler ve Instance Değişkenler

Yaşar SAFALI 0

Python Static Değişkenler ve Instance Değişkenler

Python’da bir class (sınıf)a ait değişkenler static yani sınıf değişkenleri(class variable) ve nesne veya örnek değişkenleri(instance variable) olarak incelenir.Python Class  yapılarını anlattığımız yazımızda sınıflara ait değişkenlere değişmiştik.Bu yazımızda bu değişkenler arasındaki farkı inceleyeceğiz.static değişkenler ve instance değişkenler

Static değişkenler veya sınıf(class) değişkenleri nesne yönelimli programlamada nesnelerden bağımsız olarak var olurlar.Python’da static olarak var olan değişkenler nesne veya örnek(instance) oluşturulmadan erişilebilen yapılardır.Static değişkenler tüm sınıf örneklerinde(oluşturulan nesnelerde) aynı değere sahiptir.



class Muhendisler:
    adres="adres1"
    def __init__(self,isim,soyisim):
        self.isim=isim
        self.soyisim=soyisim



    def BilgileriYaz(self):
        print(self.isim)
        print(self.soyisim)





print(Muhendisler.adres)

Output:

adres1

adres değişkeni bir sınıf(class) değişkenidir.Yani static tanımlı bir değişkendir.Üretilen her bir örnek veya nesne için sabit bir değeri vardır.

Instance yani nesne bir sınıftan türetilen yapılardı.O sınıfın bir örneklemesi,bir üyesi bir nesnesi olarak nesne yönelimli programlamada tanımlanırlar.Instance variable veya örnek değişkenleri ise her nesne için farklı değerlere sahip olan değişkenlerdir.

class Muhendisler:
    adres="adres1"
    
    def __init__(self,isim,soyisim):
        self.isim=isim
        self.soyisim=soyisim



    def BilgileriYaz(self):
        print(self.isim)
        print(self.soyisim)


muhendis=Muhendisler("yasar","safali")
muhendis2=Muhendisler("yazilim","hanem")
print(muhendis.isim)
print(muhendis2.isim)

isim değişkeni bir nesne değişkeni(instance variable)dir.Üretilen her bir nesne için farklı değer alırlar.Zaten nesneleri anlatırken self ifadesinin nesneye ait özellikleri belirttiğini ifade etmiştik.

Static değişkenler üzerinde yapılan bir değişiklik bütün nesneleri etkiler.

class Muhendisler:
    adres="adres1"

    def __init__(self,isim,soyisim):
        self.isim=isim
        self.soyisim=soyisim



    def BilgileriYaz(self):
        print(self.isim)
        print(self.soyisim)




Muhendisler.adres="yazilimhanem.com"
muhendis=Muhendisler("yasar","safali")
muhendis2=Muhendisler("yazilim","hanem")
print(muhendis.adres)
print(muhendis2.adres)


Output:

yazilimhanem.com
yazilimhanem.com

Static olarak tanımlanmış adres değişkeni ilk başta adres1 değerine sahipti.Daha sonra Sınıf ismiyle erişerek içeriğini değiştirdik.Biz ürettiğimiz nesnelerden adres değişkenine herhangi bir değişiklik yapmamıza rağmen nesnelerde bu değişikliklerden etkilendiler.

Sınıf değişkenleri ve nesne veya örnek(instance) değişkenler arasındaki temel farklar bunlardır.Bir sonraki yazımızda görüşmek dileğiyle.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir