Just learn a new python feature called @property. Let's say we create a class called Circle as follows.
class Square:
side = 2
area = side * side
s = Square()
Now:
>>> s.side 2 >>> s.area 4
However:
>>> s.side = 3 >>> s.side 3 >>> s.area 4
Not cool! How to solve that?
class Square:
side = 2
@property
def area(self)
return self.side * self.side
s = Square()
See now.
>>> s.side = 3 >>> s.side 3 >>> s.area 9