我不能在class.It中使用self似乎装饰器后面的函数的数据是第一个参数。
示例:
import socketio
import random
sio = socketio.Client()
class Test:
def __init__(self):
self.uid = random.randint(0, 10)
@sio.on('test')
def test(self, message):
test_message = str(self.uid) + message
print(test_message)
@staticmethod
def run():
sio.connect('ws://127.0.0.1:5000')
sio.wait()
if __name__ == '__main__':
test = Test()
test.run()错误:
TypeError: test() missing 1 required positional argument: 'message'发布于 2020-01-27 15:25:54
作者:miguelgrinberg
好的,那么Socket.IO如何知道self的值应该是您在文件底部创建的测试对象呢?当您以这种方式设置处理程序时,实际上没有到Test类的实际实例的链接。
在实例化类之后,尝试设置处理程序,可能如下所示:
def run(self):
sio.on('test', self.test)
sio.connect('ws://127.0.0.1:5000')
sio.wait()https://stackoverflow.com/questions/59912188
复制相似问题