
April 30, 2020
8:47 p.m.
Would either of the existing solutions work for you? class X: def __init__(self, name): self.name = name @cached_property def title(self): print("compute title once") return self.name.title() @property @lru_cache def upper(self): print("compute uppper once") return self.name.upper() obj = X("victor") print(obj.title) print(obj.title) print(obj.upper) print(obj.upper)