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 […]
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, […]
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 […]
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 […]
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 […]
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 […]
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 , […]
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 […]
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: […]
¿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