Python超级初始化自定义套接字类

2024-04-20 01:37:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想编写一个继承socket功能的类

因此,我的代码如下所示:

class walkie_talkie(socket.socket(socket.AF_INET, socket.SOCK_STREAM)):
    def __init__(self):
        self.BUFFERSIZE = 8192
        self.STATE = None
        self.IP = None                              # Server IP
        self.PORT = 5000
        self.NUMBER_OF_UNACCEPTED_CONNECTIONS = 1
        self.bytestream = None
        super().__init__()

我使用这个类作为:

from walkie_talkie import walkie_talkie

rpi1 = walkie_talkie()

所以我认为使用super().__init__()继承了socket.socket(socket.AF_INET, socket.SOCK_STREAM)的函数

但是,我收到以下错误:

File "...\lib\socket.py", line 151, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
TypeError: an integer is required (got type str)

有人能告诉我如何使用这个超级函数吗? 提前谢谢

编辑:解决方案

我纠正了我的错误:

class walkie_talkie(socket.socket):
    def __init__(self):
        self.BUFFERSIZE = 8192
        self.STATE = None
        self.IP = None                              # Server IP
        self.PORT = 5000
        self.NUMBER_OF_UNACCEPTED_CONNECTIONS = 1
        self.bytestream = None
        super().__init__(socket.AF_INET, socket.SOCK_STREAM)

Tags: selfipnonestreaminitdefsocketclass