Articles of propiedades de

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 […]

Cómo implementar __iadd__ para una propiedad de Python

Estoy tratando de crear una propiedad de Python donde la adición in situ se maneja mediante un método diferente al de recuperar el valor, agregar otro valor y reasignar. Entonces, para una propiedad x en un objeto o , ox += 5 debería funcionar de manera diferente a ox = ox + 5 El valor […]

python: cómo tener una propiedad y con una función de establecimiento que detecta todos los cambios que ocurren en el valor

Tengo una dos propiedades que contiene listas. Siempre que cambie cualquier elemento de esta lista, me gustaría que la otra lista se actualice. Esto incluye la statement obj.myProp[3]=5 . En este momento, esta statement llama a la función getter para obtener la lista completa, obtiene el tercer elemento de la lista y establece que se […]