Articles of herencia de

Herencia de la clase Python AttributeError – ¿por qué? ¿como arreglar?

Preguntas similares sobre SO incluyen: esta y esta . También he leído toda la documentación en línea que puedo encontrar, pero todavía estoy bastante confundido. Estaría agradecido por su ayuda. Quiero usar el atributo .wandtype de la clase Wand en mi método lumus de la clase CastSpell. Pero sigo recibiendo el error “AttributeError: el objeto […]

isinstance () devolviendo inesperadamente False

Estoy usando el cliente Python kubernetes . En el caso de que kubernetes no esté disponible cuando se inicie mi código, me gustaría volver a intentar la conexión. Cuando el cliente no puede conectarse, lanza lo que parece ser una excepción urllib3.exceptions.MaxRetryError , así que empecé con algo como esto: import time import urllib3 import […]

Métodos de clase primaria ‘envoltura’ de Python padre

Tengo la siguiente situación en mi código de python: class Parent(object): def run(self): print “preparing for run” self.runImpl() print “run done” class Child(Parent): def runImpl(self): print “child running” Sin embargo, tengo varios de estos ‘decoradores’, realizando diferentes pasos de configuración / desassembly antes y después de ‘runImpl’, y no me gusta tener que definir run() […]

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?