Articles of herencia

Anular un dict con soporte numpy

¿Utilizando la idea base de Cómo “anular” perfectamente un dict? Codifiqué una clase basada en diccionarios que deberían admitir la asignación de claves delimitadas por puntos, es decir, Extendeddict(‘level1.level2’, ‘value’) == {‘level1’:{‘level2′:’value’}} El codigo es import collections import numpy class Extendeddict(collections.MutableMapping): “””Dictionary overload class that adds functions to support chained keys, eg ABC :rtype : […]

Alternativas de herencia de tablas múltiples de Django para un patrón de modelo de datos básico

tl; dr ¿Existe una alternativa simple a la herencia de múltiples tablas para implementar el patrón básico de modelo de datos que se muestra a continuación, en Django? Premisa Considere el patrón de modelo de datos muy básico en la imagen a continuación, basado en, por ejemplo , Hay, 1996 . En pocas palabras: las […]

El módulo .__ init __ () toma como máximo 2 argumentos de error en Python

Tengo 3 archivos, factory_imagenet.py, imdb.py e imagenet.py factory_imagenet.py tiene: import datasets.imagenet También tiene una función llamada como datasets.imagenet.imagenet(split,devkit_path)) … imdb.py tiene: class imdb(object): def __init__(self, name): self._name = name … imagenet.py tiene: import datasets import datasets.imagenet import datasets.imdb También tiene class imagenet(datasets.imdb): def __init__(self, image_set, devkit_path=None): datasets.imdb.__init__(self, image_set) Los tres archivos están en la carpeta […]

Python: Decorar un método de clase que se pretende sobrescribir cuando se hereda

Digamos que tengo alguna clase base: class Task: def run(self): #override this! Ahora, quiero que otros subclasificaran Tarea y anulen el método run (): class MyTask(Task): def run(self): #successful override! Sin embargo, el problema es que hay una lógica que debe tener lugar antes y después del método run () de cada clase que subclases […]

Heredando de instancia en Python

En Python, me gustaría construir una instancia de la clase Child directamente desde una instancia de la clase Parent. Por ejemplo: A = Parent(x, y, z) B = Child(A) Este es un hack que pensé que podría funcionar: class Parent(object): def __init__(self, x, y, z): print “INITILIZING PARENT” self.x = x self.y = y self.z […]

python3 – comportamiento de super () en multi-herencia

Sé que la súper () y la herencia múltiple ya se han discutido aquí. Pero no encontré una solución con respecto a mi problema específico en python3. Supongamos que tenemos: #! /usr/bin/env python3 class A(object): def __init__(self): super().__init__() def foo(self): print(“The”) class B(object): def __init__(self): super().__init__() def foo(self): print(“world”) class C(B): def __init__(self): super().__init__() def […]

Configuración de una clave externa para una clase base abstracta con Django

He eliminado los atributos comunes de dos clases en una clase base abstracta, sin embargo, tengo otro modelo que necesita hacer referencia a cualquiera de esas clases. No es posible hacer referencia a un ABC, ya que en realidad no tiene una tabla de base de datos. El siguiente ejemplo debería ilustrar mi problema: class […]

Python: Herencia versus Composición

Estoy trabajando con dos clases en Python, una de las cuales debería permitir tener cualquier número de objetos de otra clase como hijos mientras mantengo un inventario de estos niños como un atributo. La herencia parece ser la opción obvia para esta situación de padres menores, pero en cambio, lo que he llegado a mí […]

Llamar al método de los padres, que ha sido anulado por el padre

¿Cómo llamar a un método a más de una clase en la cadena de herencia si otra clase lo ha invalidado en el camino? class Grandfather(object): def __init__(self): pass def do_thing(self): # stuff class Father(Grandfather): def __init__(self): super(Father, self).__init__() def do_thing(self): # stuff different than Grandfather stuff class Son(Father): def __init__(self): super(Son, self).__init__() def do_thing(self): […]

Haciendo un método privado en una subclase de python

¿Es posible hacer privado un método público en una subclase? No quiero que otras clases que se extienden a esta puedan llamar a algunos de los métodos. Aquí hay un ejemplo : class A: def __init__(self): #do something here def method(self): #some code here class B(A): def __init__(self): A.__init__(self) #additional initialization goes here def method(self): […]