Mailing List Archive

Re: Dynamically modifying "__setattr__"
On 28/09/23 10:44 pm, Stefan Ram wrote:
> class A:
> def __init__( self ):
> self.__setattr__ = self.setattr
> def setattr( self, key, value ):
> print( 'setattr called.' )
>
> Any idea how to achieve something like this?

class A:

def __init__(self):
self.x = 17
self.setattr = self.custom_setattr

def __setattr__(self, key, value):
self.setattr(key, value)

def setattr(self, key, value):
object.__setattr__(self, key, value)

def custom_setattr(self, key, value):
print('custom_setattr:', key, '=', value)

a = A()
a.x = 1
print('a.x =', a.x)

--
Greg

--
https://mail.python.org/mailman/listinfo/python-list