How to set attributes using property decorators?

Each Answer to this Q is separated by one/two green lines.

This code returns an error: AttributeError: can’t set attribute
This is really a pity because I would like to use properties instead of calling the methods. Does anyone know why this simple example is not working?


class Bar( object ):

    def value():
      def fget( self ):
          return self._value

      def fset(self, value ):
          self._value = value

class Foo( object ):
    def __init__( self ): = Bar() = "yyy"

if __name__ == '__main__':
    foo = Foo()

Is this what you want?

class C(object):
    def __init__(self):
        self._x = None

    def x(self):
        """I'm the 'x' property."""
        return self._x

    def x(self, value):
        self._x = value

Taken from

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .