Since in Line._init__(..) you say self.start = start, self.start is free for change, and in Line.length(..) you must check if Line attrs has changed from the point when DataCache was setted.
Options are:
mark as private self.start -> self._start
or remember hash of relevant data when you set DataCache
Since in
Line._init__(..)you sayself.start = start,self.startis free for change, and inLine.length(..)you must check ifLineattrs has changed from the point whenDataCachewas setted.Options are:
mark as private
self.start->self._startor remember hash of relevant data when you set
DataCache