Articles of herencia

Python, SQLAlchemy y Postgresql: entendiendo la herencia

Bastante reciente (pero no recién nacido) para Python, SQLAlchemy y Postgresql, y tratar de entender la herencia muy duro. A medida que tomo el código de otro progtwigdor, necesito entender qué es necesario y dónde para que funcione el concepto de herencia. Mis preguntas son: ¿Es posible confiar solo en SQLAlchemy para la herencia? En […]

Tipo y herencia del ‘objeto’ de Python

En Python puedo definir una clase ‘foo’ de las siguientes maneras: class foo: pass o class foo(object): pass ¿Cuál es la diferencia? He intentado usar la función issubclass (foo, object) para ver si devuelve True para ambas definiciones de clase. No es asi. IDLE 2.6.3 >>> clase foo: pasar >>> issubclass (foo, objeto) Falso >>> […]

¿Cómo se lanza una instancia a una clase derivada?

Estoy tratando de usar un poco de herencia en un progtwig de Python en el que estoy trabajando. Tengo una clase base, Usuario, que implementa toda la funcionalidad de un usuario. Estoy agregando el concepto de un usuario no aprobado, que es como un usuario, con la adición de un solo método. La clase Usuario […]

Python usando el método de la clase derivada en la clase padre?

¿Puedo obligar a una clase padre a llamar a la versión de una clase derivada de una función? class Base(object): attr1 = ” attr2 = ” def virtual(self): pass # doesn’t do anything in the parent class def func(self): print “%s, %s” % (self.attr1, self.attr2) self.virtual() y una clase que se deriva de ello. class […]

Herencia del modelo de Django y llaves extranjeras

Básicamente, tengo un modelo donde he creado una superclase que muchas otras clases comparten, y luego cada una de esas clases tiene algunas características únicas que difieren unas de otras. Digamos que la clase A es la superclase, y la clase B, C y D son hijos de esa clase. Tanto la clase B como […]

Cómo hacer un atributo de clase exclusivo de la súper clase.

Tengo una clase magistral para un planeta: class Planet: def __init__(self,name): self.name = name (…) def destroy(self): (…) También tengo algunas clases que heredan de Planet y quiero que una de ellas no pueda ser destruida (no para heredar la función de destroy ) Ejemplo: class Undestroyable(Planet): def __init__(self,name): super().__init__(name) (…) #Now it shouldn’t have […]

¿Por qué str (super (B, b)) no es equivalente a super (B, b) .__ str __ ()?

Supongamos que A es la clase padre de B y b es una instancia de B Luego, se puede llamar a un método anulado de A con super : super(B, b).method() . El estado de documentos ” str(object) devuelve el object.__str__() ” en su invocación básica. Debería seguir ese str(super(B, b)) == super(B, b).__str__() , […]

llamar a un método padre desde un widget hijo en pyside / pyqt

Estoy tratando de llamar a un método de una clase padre dentro de una clase hija. Específicamente, mi clase principal es un objeto PySide.QtGui.QMainWindow , y mi clase secundaria es un objeto PySide.QtGui.QWidget ; este último está configurado para ser el widget central del primero. Estoy tratando de conectar un botón dentro del niño a […]

Herencia variable estática en Python

Estoy escribiendo scripts de Python para Blender para un proyecto, pero soy bastante nuevo en el lenguaje. Algo de lo que estoy confundido es el uso de variables estáticas. Aquí está el código en el que estoy trabajando actualmente: class panelToggle(bpy.types.Operator): active = False def invoke(self, context, event): self.active = not self.active return{‘FINISHED’} class OBJECT_OT_openConstraintPanel(panelToggle): […]

Python 3.6: O se me escapa algo, ya sea la escritura genérica rompe el superencadenamiento por herencia

Primero ejecuté el siguiente código, que salió muy bien: class Monster: def __init__(self): self._can_do = [] print(“created a monster”) super().__init__() class Race(Monster): “”” all races must derive from this “”” def __init__(self): super().__init__() print(“created a race x”) class Human(Race): def __init__(self): super().__init__() self._can_do.append(“Do nothing special !”) print(“created a human”) class Elf(Race): def __init__(self): super().__init__() self._can_do.append(“Avoid […]