code: def notify_watches(self, oldval, newval):
          '''
          Passes `oldval` and `newval` to each `fn` in the watches dictionary,
          passing along its respective key and the reference to this object.
  
          :param oldval: The old value which will be passed to the watch.
          :param newval: The new value which will be passed to the watch.
          '''
          watches = self._watches.copy()
          for k in watches:
              fn = watches[k]
              if isinstance(fn, collections.Callable):
                  fn(k, self, oldval, newvalf notify_watches(self, oldval, newval):
          '''
          Passes `oldval` and `newval` to each `fn` in the watches dictionary,
          passing along its respective key and the reference to this object.
  
          :param oldval: The old value which will be passed to the watch.
          :param newval: The new value which will be passed to the watch.
          '''
          watches = self._watches.copy()
          for k in watches:
              fn = watches[k]
              if isinstance(fn, collections.Callable):
                  fn(k, self, oldval, newval)
docs: Passes `oldval` and `newval` to each `fn` in the watches dictionary,
          passing along its respective key and the reference to this object.
  
          :param oldval: The old value which will be passed to the watch.
          :param newval: The new value which will be passed to the watch.