Python - dziedziczenie ze starych klas
Próbuję połączyć się przez telnet z instrumentem laboratoryjnym. Chciałbym rozszerzyćTelnet
klasa odtelnetlib
moduł w standardowej bibliotece, zawierający funkcje specyficzne dla naszego instrumentu:
import telnetlib
class Instrument(telnetlib.Telnet):
def __init__(self, host=None, port=0, timeout=5):
super(Instrument,self).__init__(host, port, timeout)
Wszystko, co próbuję zrobić w tym kodzie, to dziedziczenie__init__
metoda z klasy nadrzędnej (telnetlib.Telnet
) i przekaż standardowe argumenty, abym mógł dodawać rzeczy__init__
później. Ta formuła zadziałała dla mnie przy innych okazjach; tym razem daje mi błąd wsuper()
instrukcja, gdy próbuję utworzyć instancję:
TypeError: must be type, not classobj
Spojrzałem na kod źródłowy telnetlib, a Telnet wydaje się klasą w starym stylu (nie dziedziczy zobject
) - Zastanawiam się, czy to może być źródłem mojego problemu? Jeśli tak, jak można go pokonać? Widziałem przykłady kodu, w których klasa pochodna dziedziczy zarówno z nadklasy, jak iobject
, choć nie jestem do końca pewien, czy jest to odpowiedź na ten sam problem, co ja.
Pełne ujawnienie: próbowałem również użyćtelnetlib.Telnet
zamiastsuper()
, ifrom telnetlib import Telnet
zTelnet
zamiastsuper()
. Problem nadal występuje w tych przypadkach.
Dzięki!