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.