[英]Python super init custom socket class
我想寫一個繼承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)
有人能告訴我如何使用 super 函數嗎?
正如jasonharper 所指定的,一個類只能繼承自另一個類,例如socket.socket
。 您不能像您在此處嘗試的那樣從類的實例繼承。 您嘗試傳遞給socket.socket()
的參數應該放在super().__init__()
中。
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)
這個答案是由 OP V.Hunon在 CC BY-SA 4.0 下作為對問題Python super init custom socket class的編輯發布的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.