Python - Erben von Klassen im alten Stil

Ich versuche über Telnet eine Verbindung zu einem Laborgerät herzustellen. Ich möchte das verlängernTelnet Klasse von dertelnetlib Modul in der Standardbibliothek, das Funktionen enthält, die für unser Instrument spezifisch sind:

import telnetlib
class Instrument(telnetlib.Telnet):
    def __init__(self, host=None, port=0, timeout=5):
        super(Instrument,self).__init__(host, port, timeout)

Alles, was ich in diesem Code zu tun versuche, ist das erben__init__ Methode aus der Elternklasse (telnetlib.Telnet) und geben Sie die Standardargumente weiter, damit ich sie ergänzen kann__init__ später. Diese Formel hat bei anderen Gelegenheiten für mich funktioniert; diesmal gibt es mir einen fehler bei dersuper() Anweisung, wenn ich versuche zu instanziieren:

TypeError: must be type, not classobj

Ich habe mir den Quellcode für telnetlib angesehen, und Telnet scheint eine Klasse alten Stils zu sein (von der es nicht erbt)object) - Ich frage mich, ob dies die Ursache für mein Problem sein könnte. Wenn ja, wie kann es überwunden werden? Ich habe einige Codebeispiele gesehen, in denen die abgeleitete Klasse sowohl von der Oberklasse als auch von der Oberklasse erbtobject, obwohl ich nicht ganz sicher bin, ob dies eine Antwort auf das gleiche Problem wie ich ist.

Vollständige Offenlegung: Ich habe es auch mit versuchttelnetlib.Telnet anstelle vonsuper(), undfrom telnetlib import Telnet mitTelnet anstelle vonsuper(). In diesen Fällen besteht das Problem weiterhin.

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage