Python - heredar de las clases de estilo antiguo
Estoy tratando de conectarme a través de telnet a un instrumento de laboratorio. Me gustaría extender elTelnet
clase de latelnetlib
Módulo en la biblioteca estándar, para incluir funciones específicas de nuestro instrumento:
import telnetlib
class Instrument(telnetlib.Telnet):
def __init__(self, host=None, port=0, timeout=5):
super(Instrument,self).__init__(host, port, timeout)
Todo lo que estoy tratando de hacer en este código es heredar el__init__
método de la clase padre (telnetlib.Telnet
) y pasar los argumentos estándar, así que puedo agregar cosas a__init__
luego. Esta fórmula me ha funcionado en otras ocasiones; esta vez me da un error en elsuper()
declaración cuando trato de instanciar:
TypeError: must be type, not classobj
Miré el código fuente de telnetlib, y Telnet parece ser una clase de estilo antiguo (no se hereda deobject
) - Me pregunto si esto podría ser la fuente de mi problema. Si es así, ¿cómo se puede superar? He visto algunos ejemplos de código donde la clase derivada hereda tanto de la superclase comoobject
, aunque no estoy completamente seguro de si esto es una respuesta al mismo problema que yo.
Revelación completa: también he intentado usartelnetlib.Telnet
en lugar desuper()
yfrom telnetlib import Telnet
conTelnet
en lugar desuper()
. El problema persiste en estos casos.
¡Gracias!