我正在尝试通过 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
withTelnet
代替super()
. 在这些情况下问题仍然存在。
谢谢!