Как читать файл WASM и обслуживать его через HTTP?

Для правильной работы @properties класс должен быть подклассом объекта. когда класс не является подклассом объекта, то при первом попытке доступа к установщику он фактически создает новый атрибут с более коротким именем вместо доступа через сеттер.

Неправильно работает следующее:

class C(): # <-- Notice that object is missing

    def __init__(self):
        self._x = None

    @property
    def x(self):
        print 'getting value of x'
        return self._x

    @x.setter
    def x(self, x):
        print 'setting value of x'
        self._x = x

>>> c = C()
>>> c.x = 1
>>> print c.x, c._x
1 0

Правильно работает

class C(object):

    def __init__(self):
        self._x = None

    @property
    def x(self):
        print 'getting value of x'
        return self._x

    @x.setter
    def x(self, x):
        print 'setting value of x'
        self._x = x

>>> c = C()
>>> c.x = 1
setting value of x
>>> print c.x, c._x
getting value of x
1 1
-2
задан Shepmaster 13 July 2018 в 19:31
поделиться