Articles of herencia de

Cómo pasar todos los argumentos de __init__ a super clase

¿Existe alguna magia que pueda usar en Python para usar efectivamente el súper constructor simplemente agregando algunos argumentos adicionales? Idealmente me gustaría usar algo como: class ZipArchive(zipfile.ZipFile): def __init__(self, verbose=True, **kwargs): “”” Constructor with some extra params. For other params see: zipfile.ZipFile “”” self.verbose = verbose super(ZipArchive, self).__init__(**kwargs) Y luego ser capaz de usar los […]

Inicial hijo con instancia de padre

Tengo una función que devuelve instancias de la clase Parent: def generateParent(): do_stuff return Parent(some_parameters) Ahora quiero iniciar una subclase de Padre con los resultados de una llamada a generateParent() : class Child(Parent): def __new__(): return generateParent(some_other_parameters) El problema es que cuando anulo algunos métodos de Parent in Child y luego los llamo en instancias […]

Advertencias de Pylint en miembros de clase nesteds heredados

Tenemos alguna funcionalidad particular implementada como una clase de Python, para que nuestros desarrolladores la puedan extender fácilmente. Cada clase tiene una clase Config interna con una lista de elementos. La clase base tiene una clase Config vacía, y cada clase heredada define algunos elementos en ella. Luego, pylint se queja cada vez que se […]

¿Cómo subclasificar un OrderedDict?

Subclasificar un dict Python funciona como se espera: >>> class DictSub(dict): … def __init__(self): … self[1] = 10 … >>> DictSub() {1: 10} Sin embargo, hacer lo mismo con collections.OrderedDict no funciona: >>> import collections >>> class OrdDictSub(collections.OrderedDict): … def __init__(self): … self[1] = 10 … >>> OrdDictSub() (…) AttributeError: ‘OrdDictSub’ object has no attribute […]

Python self y super en herencia múltiple.

En la charla de Raymond Hettinger, ” Super considerado súper habla ” en PyCon 2015, explica las ventajas de usar super en Python en el contexto de herencia múltiple. Este es uno de los ejemplos que Raymond utilizó durante su charla: class DoughFactory(object): def get_dough(self): return ‘insecticide treated wheat dough’ class Pizza(DoughFactory): def order_pizza(self, *toppings): […]

Tema de herencia de clase Python

Estoy jugando con la herencia de Python Class y me encontré con un problema donde el __init__ heredado no se está ejecutando si se llama desde la subclase (código siguiente) el resultado que obtengo de Python activo es: >>> start Tom Sneed Sue Ann Traceback (most recent call last): File “C:\Python26\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py”, line 312, in RunScript […]

python: hereditario o composición

Digamos que tengo class , que usa alguna funcionalidad de dict . Solía ​​componer un objeto dict dentro y proporcionar algo de acceso desde el exterior, pero recientemente pensé en simplemente heredar dict y agregar algunos atributos y métodos que podría requerir. ¿Es una buena manera de ir, o debo atenerme a la composición?

Anulación del método Python, ¿importa la firma?

Digamos que tengo class Super(): def method1(): pass class Sub(Super): def method1(param1, param2, param3): stuff ¿Es esto correcto? ¿Las llamadas a method1 siempre irán a la subclase? Mi plan es tener 2 subclases por cada método de reemplazo1 con diferentes parámetros

¿Cómo establecer y obtener un atributo de clase principal de una clase heredada en Python?

Tengo la Family y sus clases de Person heredada. ¿Cómo obtengo el atributo familyName de la clase Person ? class Family(object): def __init__(self, familyName): self.familyName = familyName class Person(Family): def __init__(self, personName): self.personName = personName Por ejemplo, deje que estos objetos Family y Person : strauss = Family(‘Strauss’) johaness = Person(‘Johaness’) richard = Person(‘Richard’) Me […]

Python admite una forma limitada de herencia múltiple. ¿En qué forma limitada?

En el tutorial de Python se dice que ” Python admite una forma limitada de herencia múltiple “. ¿Cuáles son las limitaciones?