avatar Bite 207. Cached property decorator

Given the sample class Planet, computing the mass attribute of an instance is a computationally expensive and time consuming operation. Ideally you'd like this attribute to be a cached_property that only gets computed once and is then stored for future access, not having to be recalculated over (and over and over).


Tasks

Complete cached_property(func) as a decorator function, so that asking "What was the mass of Planet('red') again?" is consistent and quick.

Note: Attempting to set mass should raise AttributeError as it is read-only.

Hint: replace the @property decorator with your implementation of @cached_property and remove the mass setter entirely, attempting to set mass should raise AttributeError as it is read-only.

Login and get coding
go back Advanced level
Bitecoin 4X

145 out of 145 users completed this Bite.
Will you be Pythonista #146 to crack this Bite?
Resolution time: ~51 min. (avg. submissions of 5-240 min.)
Pythonistas rate this Bite 6.64 on a 1-10 difficulty scale.
» Up for a challenge? 💪

Focus on this Bite hiding sidebars, turn on Focus Mode.

Ask for Help