The problem with this approach is that it leaves the getter and setter
sitting around in the class namespace. It also lacks the compact
spelling of a decorator solution. To cope with that, some people like
to write:

This spelling feels rather cumbersome, apart from the fact that
apply is going to go away in Python 3000.

Goal

There should be a way to declare a read & write property and still use
the compact and easy decorator spelling. The read & write properties
should be as easy to use as the read-only property. We explicitly
don’t want that immediately called function that really just helps us
name the attribute and create a local scope for the getter and setter.

Class properties

Class properties let you define properties via the class
statement. You define a dynamic property as if you were implementing
a class. This works like this: