Articles of propiedades de

Cómo listar todas las propiedades de clase

Tengo clase SomeClass con propiedades. Por ejemplo, id y name : class SomeClass(object): def __init__(self): self.__id = None self.__name = None def get_id(self): return self.__id def set_id(self, value): self.__id = value def get_name(self): return self.__name def set_name(self, value): self.__name = value id = property(get_id, set_id) name = property(get_name, set_name) ¿Cuál es la forma más fácil […]

Explicación de una clase de decorador en python.

Mientras leía sobre un módulo de python, me encontré con esta clase de decoradores: # this decorator lets me use methods as both static and instance methods class omnimethod(object): def __init__(self, func): self.func = func def __get__(self, instance, owner): return functools.partial(self.func, instance) Lo que sé sobre decoradores, es que puede extender la funcionalidad (por ejemplo, […]

abc.abstractmethod + propiedad

De acuerdo con los documentos , debería funcionar para combinar @property y @abc.abstractmethod para que lo siguiente funcione en python3.3: import abc class FooBase(metaclass=abc.ABCMeta): @property @abc.abstractmethod def greet(self): “”” must be implemented in order to instantiate “”” pass @property def greet_comparison(self): “”” must be implemented in order to instantiate “”” return ‘hello’ class Foo(FooBase): def […]

Descripción de Python vs propiedad

Posible duplicado: ¿Cuándo y por qué puedo asignar una instancia de una clase de descriptor a un atributo de clase en Python en lugar de usar una propiedad? Estoy confundido en cuanto a cuándo usar una propiedad frente a un descriptor. Leí que una propiedad es un descriptor especializado. ¿Puede alguien por favor publicar cómo […]

Cómo crear propiedades abstractas en clases abstractas de python

En el siguiente código, creo una base abstracta de clase Base . Quiero que todas las clases que heredan de Base proporcionen la propiedad de name , por lo que hice de esta propiedad un @abstractmethod . Luego creé una subclase de Base , llamada Base_1 , que está destinada a proporcionar alguna funcionalidad, pero […]

Diseño del descriptor de propiedades de Python: ¿por qué copiar en lugar de mutar?

Estaba viendo cómo Python implementa el descriptor de propiedad internamente. De acuerdo con la property() docs property() se implementa en términos del protocolo descriptor, reproduciéndolo aquí por conveniencia: class Property(object): “Emulate PyProperty_Type() in Objects/descrobject.c” def __init__(self, fget=None, fset=None, fdel=None, doc=None): self.fget = fget self.fset = fset self.fdel = fdel if doc is None and fget […]

¿Cómo identificar cuándo se establece el atributo de un atributo?

Tengo un objeto mutable (que llamaremos mutable ) que tiene múltiples atributos. Este objeto es en sí mismo un atributo en una clase Foo . Foo es definido por el usuario, mientras que mutable no lo es y, por lo tanto, no se puede cambiar. Siempre que alguien intente establecer los atributos en mutable , […]

Propiedades de Python y Swig

Estoy intentando crear enlaces de python para algunos códigos C ++ usando swig. Parece que me he encontrado con un problema al intentar crear propiedades de Python desde algunas funciones de acceso que tengo para métodos como los siguientes: class Player { public: void entity(Entity* entity); Entity* entity() const; }; Intenté crear una propiedad utilizando […]

propiedades de Python y herencia

Tengo una clase base con una propiedad que (el método de obtención) quiero sobrescribir en la subclase. Mi primer pensamiento fue algo como: class Foo(object): def _get_age(self): return 11 age = property(_get_age) class Bar(Foo): def _get_age(self): return 44 Esto no funciona (la subclase bar.age devuelve 11). Encontré una solución con una expresión lambda que funciona: […]

Cómo modelar las propiedades de python en el diagtwig UML

¿Cuál es una buena práctica para modelar las propiedades de python en un diagtwig de clase UML? Las propiedades en sí son objetos de clase, su captador y definidor son funciones de clase. Desde Fuera de la clase se ven como atributos de instancia. Entonces, ¿cómo sugerirías presentar eso en mi diagtwig de clase? Gracias