Python - наследование от классов старого стиля
Я пытаюсь подключиться через telnet к лабораторному инструменту. Я хотел бы продлитьTelnet
класс изtelnetlib
Модуль в стандартной библиотеке, чтобы включить функции, специфичные для нашего инструмента:
import telnetlib
class Instrument(telnetlib.Telnet):
def __init__(self, host=None, port=0, timeout=5):
super(Instrument,self).__init__(host, port, timeout)
Все, что я пытаюсь сделать в этом коде, это наследовать__init__
метод из родительского класса (telnetlib.Telnet
) и передать стандартные аргументы, чтобы я мог__init__
потом. Эта формула работала для меня в других случаях; на этот раз это дает мне ошибку вsuper()
Заявление, когда я пытаюсь создать экземпляр:
TypeError: must be type, not classobj
Я посмотрел на исходный код telnetlib, и Telnet представляется классом старого стиля (он не наследуется отobject
) - Мне интересно, может ли это быть источником моей проблемы? Если так, как это можно преодолеть? Я видел несколько примеров кода, где производный класс наследует как от суперкласса, так и отobject
хотя я не совсем уверен, является ли это ответом на ту же проблему, что и у меня.
Полное раскрытие: я также пытался использоватьtelnetlib.Telnet
на местеsuper()
, а такжеfrom telnetlib import Telnet
сTelnet
на местеsuper()
, Проблема сохраняется в этих случаях.
Спасибо!