我试图通过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)
Run Code Online (Sandbox Code Playgroud)
我在这段代码中尝试做的就是__init__
从父类(telnetlib.Telnet
)继承方法并传递标准参数,所以我可以在__init__
以后添加内容.这个公式在其他场合对我有用; 这次它super()
在我尝试实例化时在语句中给出了一个错误:
TypeError: must be type, not classobj
Run Code Online (Sandbox Code Playgroud)
我查看了telnetlib的源代码,Telnet似乎是一个旧式类(它不会继承object
) - 我想知道这是否可能是我的问题的根源?如果是这样,怎么可以克服?我已经看到了一些代码示例,其中派生类从超类继承object
,虽然我不完全确定这是否是对我的同一问题的响应.
披露:我一直在使用也尝试telnetlib.Telnet
代替super()
,并from telnetlib import Telnet
用Telnet
到位的super()
.在这些情况下问题仍然存在.
谢谢!