Python Bir Nesnenin Kendisine Ait Bir Değişkenin Değişmesi Sonucu Çalışan Metod

Örneğin bir sınıf ve bu sınıftan bir nesne oluşturdum:

class OrnekClass:
    def __init__(self, var1: str ="bilmem ne"):
        self.var1 = var1

ornek_nesne1 = OrnekClass()

Ve bu ‘var1’ adlı değişkenin değerini değiştirdim:

ornek_nesne1.var1 = "ne bilmem"

Bu değişkeni değiştirince tetiklenen bir metod var mı, yoksa nasıl yazabilirim?

Normalde biz bu işler için property bezeyicisini kullanıyoruz.

Ancak bunu birkaç belli nitelik için değil de her niteliği değiştirdiğimizde yapmak istiyorsanız __setattr__ kullanmanız daha pratik olabilir:

>>> class A:
	    def __setattr__(self,attr,value):
            ...yapılacak işlemler...
            object.__setattr__(self,attr,value)

Burada attr değiştirdiğimiz değişkenin str olarak ismi, value ise atanan değer olan nesne. Yani:

>>> a = A()
>>> a.b = 1

işlemi

>>> a = A()
>>> a.__setattr__("b",1)

ile eşdeğerdir diyebiliriz.

1 Beğeni