class A: personality = CachedProperty(counting_func)
class B: brrr_property = CachedProperty('brrr')
class C: undocced_property = CachedProperty(lambda self: 1 / 0, )
class A: personality = CachedProperty(counting_func, force_value_not_getter=True)
class B: personality = CachedProperty(counting_func, doc='''Ooga booga.''')
class A: personality = CachedProperty(counting_func, name='meow')
class A(object): personality = CachedProperty(counting_func, name='personality')
class B(object): brrr_property = CachedProperty('brrr')
class C(object): undocced_property = CachedProperty( lambda self: 1/0, )