Python - herdando de classes antigas
Estou tentando conectar via telnet a um instrumento de laboratório. Eu gostaria de estender oTelnet
classe dotelnetlib
módulo na biblioteca padrão, para incluir funções específicas do nosso instrumento:
import telnetlib
class Instrument(telnetlib.Telnet):
def __init__(self, host=None, port=0, timeout=5):
super(Instrument,self).__init__(host, port, timeout)
Tudo o que estou tentando fazer neste código é herdar o__init__
método da classe pai (telnetlib.Telnet
) e passar os argumentos padrão, para que eu possa adicionar coisas__init__
mais tarde. Esta fórmula funcionou para mim em outras ocasiões; desta vez isso me dá um erro nosuper()
declaração quando tento instanciar:
TypeError: must be type, not classobj
Eu olhei para o código-fonte para telnetlib, e Telnet parece ser uma classe de estilo antigo (não herda deobject
) - Eu estou querendo saber se isso poderia ser a fonte do meu problema? Se sim, como pode ser superado? Eu vi alguns exemplos de código onde a classe derivada herda tanto da superclasse quantoobject
, embora eu não esteja totalmente certo se isso é uma resposta ao mesmo problema que eu.
Divulgação completa: Eu também tentei usartelnetlib.Telnet
no lugar desuper()
efrom telnetlib import Telnet
comTelnet
no lugar desuper()
. O problema persiste nesses casos.
Obrigado!