@classproperty
Is this an amazing, or terrible idea?
Lets define a classproperty
in Python such that it works as a property on both a class, and an instance:
class classproperty(object): def __init__(self, func): self.func = func def __get__(self, obj, cls): return self.func(cls, obj)
It can be used thusly:
class Example(object): @classproperty def prop(cls, obj): return obj or cls x = Example() assert x.prop is x assert Example.prop is Example
Is this a good idea, or a bad idea?
(Hint: I don't know.)