Property getter / setter no tiene efecto en Python 2

Estoy un poco confundido acerca de las propiedades en Python. Considere el siguiente código

class A:
    @property
    def N(self):
        print("A getter")
        return self._N
    @N.setter
    def N(self,v):
        print("A setter")
        self._N = v

    def __init__(self):
        self._N = 1

class B:
    @property
    def N(self):
        print("B getter")
        return self.a.N
    @N.setter
    def N(self,v):
        print("B setter")
        self.a.N = v

    def __init__(self):
        self.a = A()

if __name__ == '__main__':
    b=B()
    b.N = 2
    print(b.N, b.a.N)
    b.N = 3
    print(b.N, b.a.N)

B debería ser algo así como un contenedor para A. Utiliza getters y setters para mapear las propiedades de A en sí mismo (por supuesto, uno también podría hacerlo por herencia). El problema es que simplemente no funciona como se esperaba en python2.6 mientras que funciona en python3:

> python2 test.py
A getter
(2, 1)
A getter
(3, 1)

> python3 test.py
B setter
A setter
B getter
A getter
A getter
2 2
B setter
A setter
B getter
A getter
A getter
3 3

¿Estoy haciendo algo mal o dónde está exactamente el problema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta