Как установить атрибуты с помощью декораторов свойств?
Этот код возвращает ошибку: AttributeError: невозможно установить атрибут
Это очень жаль, потому что я хотел бы использовать свойства вместо вызова методов. Кто-нибудь знает, почему этот простой пример не работает?
#!/usr/bin/python2.6
class Bar( object ):
"""
...
"""
@property
def value():
"""
...
"""
def fget( self ):
return self._value
def fset(self, value ):
self._value = value
class Foo( object ):
def __init__( self ):
self.bar = Bar()
self.bar.value = "yyy"
if __name__ == '__main__':
foo = Foo()
Ответы
Ответ 1
Это то, что вы хотите?
class C(object):
def __init__(self):
self._x = None
@property
def x(self):
"""I'm the 'x' property."""
return self._x
@x.setter
def x(self, value):
self._x = value
Взято из http://docs.python.org/library/functions.html#property.