Skip to content Skip to sidebar Skip to footer

Detecting Class Attribute Value Change And Then Changing Another Class Attribute

Let's say I have a class called Number class Number(): def __init__(self,n): self.n=n self.changed=None a = Number(8) print(a.n) #prints 8 a.n=9 print(a.n) #prints 9 Wh

Solution 1:

Possible with proper use of @propety

class Number():
  def __init__(self,n):
    self._n=n
    self._changed=None

  @property
  def n(self):
      return self._n

  @property
  def changed(self):
      return self._changed

  @n.setter
  def n(self, val):
      # while setting the value of n, change the 'changed' value as well
      self._n = val
      self._changed = True

a = Number(8)
print(a.n) #prints 8
a.n=9
print(a.n) #prints 9
print(a.changed)

Returns:

8
9
True

Post a Comment for "Detecting Class Attribute Value Change And Then Changing Another Class Attribute"