--- title: "Quick Python: Cached Property" date: 2020-04-18T18:29:21-04:00 draft: false tags: ["Python"] medium_enabled: true --- If you have a property in an object that only needs to be computed once, consider using `cached_property` to store the result and serve for future function calls. ```python import functools class Number: def __init__(self, n): self.n = n @functools.cached_property def is_prime(self): return all(self.n % i for i in range(2, self.n)) ``` Let's test it with the Mersenne prime `524287`. ```python n = Number(524287) n.is_prime ``` After maybe 1-2 seconds of thinking you should get `True.` Run it again and the result will be instantaneous!