La salida parece un poco sospechosa dado el siguiente código. ¿Por qué "get in Base" solo se imprime una vez? ¿Y por qué no se imprime "set in Base"? El verdadero get/setting parece funcionar bien sin embargo. ¿Qué me estoy perdiendo?Propiedad Python
class Base:
def __init__(self):
self.s = "BaseStr"
def getstr(self):
print "get in Base"
return self.s
def setstr(self, s):
print "set in Base"
self.s = s
str = property(getstr, setstr)
b = Base()
print b.str
b.str = "Foo"
print b.str
Salida:
get in Base
BaseStr
Foo
Spot on, gracias. :) – Mizipzor
Y, para Python 3.x, no necesita hacer esto. Todas las clases en Python3 son de estilo nuevo. – treecoder
Pero si no hago una subclase 'object', aún puedo crear' property' en la clase clásica, ¿por qué? – Alcott