def classproperty(func):
    'The class property decorator'
    if (not isinstance(func, (classmethod, staticmethod))):
        func = classmethod(func)
    return ClassPropertyDescriptor(func)
The class property decorator
def classproperty(func):
    
    if (not isinstance(func, (classmethod, staticmethod))):
        func = classmethod(func)
    return ClassPropertyDescriptor(func)