You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.6继承Tornado TCPServer调用super.__init__()报错求助

解决Tornado TCPServer继承时的super调用错误

这个错误很典型——你在调用父类构造方法的时候,super的用法写错了!

看你的报错信息里的关键提示:

TypeError: descriptor 'init' of 'super' object needs an argument

问题出在你写的super.__init__()上。super是一个类,必须先通过super()实例化出一个对象,才能调用它的__init__方法。直接用super.__init__()相当于试图调用类的未绑定方法,它缺少了必要的类和实例参数,所以才会抛出这个类型错误。

正确的代码写法示例

假设你的TelemetryServer类结构如下,修改__init__方法里的super调用即可:

from tornado.tcpserver import TCPServer

class TelemetryServer(TCPServer):
    def __init__(self):
        # 必须加上括号,实例化super对象后再调用__init__
        super().__init__()
        # 这里可以添加你的自定义初始化逻辑

额外说明

在Python 3中,super()会自动识别当前类和实例,不需要像Python 2那样显式传入super(TelemetryServer, self)(当然写全也能正常运行,但完全没必要)。只要把super.__init__()改成super().__init__(),你的代码就能正常实例化TelemetryServer了。

内容的提问来源于stack exchange,提问作者Greg Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:20:14