Sobes.tech
Junior — Middle

Sınıf yöntemleri bağlamında self ve cls arasındaki farkları açıklayın

sobes.tech yapay zeka

AI'dan gelen yanıt

Python'da self ve cls, metodların ilk parametresi için kullanılan anlaşmalardır, ancak farklı amaçlara hizmet ederler:

  • self, sınıfın belirli bir örneğine referanstır. Normal örnek metodlarında, bu nesnenin özelliklerine ve metodlarına erişmek için kullanılır.
  • cls, kendisinden değil, sınıfın kendisine referanstır. Sınıf metodlarında (@classmethod dekoratörü ile işaretlenmiş) kullanılır ve sınıf genelinde çalışmak, yeni örnekler oluşturmak veya sınıf özelliklerini değiştirmek gibi işlemler için kullanılır.

Örnek:

class MyClass:
    class_var = 0

    def __init__(self, value):
        self.instance_var = value

    def instance_method(self):
        print(f'Örnek değişkeni: {self.instance_var}')

    @classmethod
    def class_method(cls):
        print(f'Sınıf değişkeni: {cls.class_var}')

obj = MyClass(10)
obj.instance_method()  # örnek metodunu çağırır
MyClass.class_method()  # sınıf metodunu çağırır