que he visto muchos ejemplos online y in this forum de cómo crear propiedades en Python con especiales captadores y set. Sin embargo, no puedo obtener los métodos especiales getter y setter para ejecutar, ni puedo usar @property decorator para transformar una propiedad como readonly.Python 2.6.4 decoradores de propiedad que no trabaja
Estoy usando Python 2.6.4 y aquí está mi código. Se emplean diferentes métodos para usar propiedades, pero ninguno de los dos funciona.
class PathInfo:
def __init__(self, path):
self.setpath(path)
def getpath(self):
return self.__path
def setpath(self, path):
if not path:
raise TypeError
if path.endswith('/'):
path = path[:-1]
self.__path = path
self.dirname = os.path.dirname(path)
self.basename = os.path.basename(path)
(self.rootname, self.dext) = os.path.splitext(self.basename)
self.ext = self.dext[1:]
path = property(fget=getpath, fset=setpath)
@property
def isdir(self):
return os.path.isdir(self.__path)
@property
def isfile(self):
return os.path.isfile(self.__path)
No solo propiedades, sino descripciones de todo tipo. –
Otra opción es poner '__metaclass __ = type' en la parte superior del archivo, lo que hará que todas las clases tengan un estilo nuevo. Creo que es mejor ser explícito para cada clase a través de –
O puede poner este '__metaclass__' en la clase en lugar de ponerlo en la parte superior del archivo. De esta manera solo una clase lo tendrá. – gruszczy