Articles of propiedades de

Implementando una propiedad de clase que preserva la cadena de documentos.

Tengo un descriptor que convierte un método en una propiedad en el nivel de clase: class classproperty(object): def __init__(self, getter): self.getter = getter self.__doc__ = getter.__doc__ def __get__(self, instance, owner): return self.getter(owner) Utilizado de esta manera: class A(object): @classproperty def test(cls): “docstring” return “Test” Sin embargo, ahora no puedo acceder al atributo __doc__ (lo cual […]

Consultando una propiedad híbrida en SQLAlchemy

Estoy almacenando rutas de archivos como rutas relativas en la base de datos, pero luego estoy usando propiedades híbridas para convertirlas en una ruta absoluta cuando se asigna. Cuando hago una consulta usando esta propiedad, arroja un error. Aquí está el modelo: class File(Base): __tablename__ = ‘files’ … _f_path = Column(Unicode(30)) … @hybrid_property def f_path(self): […]

Cómo definir propiedades en __init__

Deseo definir propiedades en una clase desde una función miembro. A continuación se muestra un código de prueba que muestra cómo me gustaría que esto funcione. Sin embargo no consigo el comportamiento esperado. class Basket(object): def __init__(self): # add all the properties for p in self.PropNames(): setattr(self, p, property(lambda : p) ) def PropNames(self): # […]

Zope: no se puede acceder a SOLICITAR bajo el decorador de la propiedad

Estoy tratando de usar el decorador de propiedades en una clase. Si bien funciona bien, no puedo usar ningún código que tenga acceso a la REQUEST . class SomeClass(): #Zope magic code _properties=({‘id’:’someValue’, ‘type’:’ustring’, ‘mode’:’r’},) def get_someValue(self): return self.REQUEST @property def someValue(self): return self.REQUEST Aunque llamar a get_someValue me da el resultado deseado, intentar acceder […]

SQLAlchemy: cómo mapear contra una propiedad de solo lectura (o calculada)

Estoy intentando averiguar cómo mapear contra una propiedad de solo lectura simple y hacer que esa propiedad se active cuando guardo en la base de datos. Un ejemplo artificial debería dejar esto más claro. Primero, una tabla simple: meta = MetaData() foo_table = Table(‘foo’, meta, Column(‘id’, String(3), primary_key=True), Column(‘description’, String(64), nullable=False), Column(‘calculated_value’, Integer, nullable=False), ) […]

Puede establecer cualquier propiedad del objeto Python

Por ejemplo, este código es Python: a = object() ab = 3 arroja AttributeError: ‘object’ object has no attribute ‘b’ Pero, esta pieza de código: class c(object): pass a = c() ab = 3 está bien ¿Por qué puedo asignar la propiedad b, cuando la clase x no tiene esa propiedad? ¿Cómo puedo hacer que […]

¿Constantes variables de instancia?

Utilizo @property para asegurarme de que los cambios en las variables de instancia de un objeto se @property a los métodos que necesito. ¿Qué pasa cuando una instancia tiene una variable que, lógicamente, no debería cambiarse? Por ejemplo, si estoy creando una clase para un Proceso, cada instancia de Proceso debe tener un atributo PID […]

Subclasificando la propiedad `de Python

En una de mis clases, tengo varias propiedades que hacen cosas muy similares para obtener y configurar. Así que abstraí los argumentos de property en una función de fábrica: def property_args(name): def getter(self): # do something return getattr(self, ‘_’ + name) def setter(self, value) # do something setattr(self, ‘_’ + name, value) return getter, setter […]

python: ¿los campos de propiedad se almacenan en caché automáticamente?

Mi pregunta es si el intérprete ejecuta los dos siguientes códigos: class A(object): def __init__(self): self.__x = None @property def x(self): if not self.__x: self.__x = … #some complicated action return self.__x y el mucho más simple: class A(object): @property def x(self): return … #some complicated action Es decir, ¿el intérprete es lo suficientemente inteligente […]

Propiedades de flujo de datos diferido (como hoja de cálculo) con dependencias en Python

Mi problema es el siguiente: tengo algunas clases de python que tienen propiedades derivadas de otras propiedades; y esos deben almacenarse en caché una vez que se calculan, y los resultados almacenados en caché deben invalidarse cada vez que se cambian las propiedades base. Podría hacerlo manualmente, pero parece bastante difícil de mantener si el […]