It seems to me that one of the more common reasons for using @property is to create a read-only attribute. I wonder if it would make sense to simply create a read-only decorator.
class Foo(object): _size = 4
@property def size(self): return _size
class Foo(object): @read-only size = 4
This gets more interesting if decorators nest:
class Foo(object): __metaclass__ = abc.ABCMeta
@abstract @classattribute @read-only size = None