Sobes.tech
Junior — Middle

Python'da sınıf düzeyi değişkenleri ile örnek değişkenleri arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Sınıf seviyesindeki değişkenler (class variables), sınıf içinde, ancak metodların dışında tanımlanır ve bu sınıfın tüm örnekleri için ortaktır. Sınıfın isim alanında saklanır ve sınıf ve örnekleri aracılığıyla erişilebilir.

Örnek değişkenler (instance variables), metodlar içinde (genellikle __init__ içinde) oluşturulur ve belirli bir nesneye aittir. Her örneğin bu değişkenler için kendi değerleri vardır.

Örnek:

class MyClass:
    class_var = 0  # sınıf değişkeni

    def __init__(self, value):
        self.instance_var = value  # örnek değişkeni

obj1 = MyClass(10)
obj2 = MyClass(20)

print(obj1.class_var)      # 0
print(obj2.class_var)      # 0
print(obj1.instance_var)   # 10
print(obj2.instance_var)   # 20

MyClass.class_var = 5
print(obj1.class_var)      # 5
print(obj2.class_var)      # 5

obj1.instance_var = 15
print(obj1.instance_var)   # 15
print(obj2.instance_var)   # 20

Böylece, sınıf değişkeninde yapılan değişiklikler, onları yerel olarak yeniden tanımlamadıkları sürece tüm örneklere yansır ve örnek değişkenleri her nesne için özeldir.