首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在python-socketio中使用self

不能在python-socketio中使用self
EN

Stack Overflow用户
提问于 2020-01-26 02:23:34
回答 1查看 780关注 0票数 0

我不能在class.It中使用self似乎装饰器后面的函数的数据是第一个参数。

示例:

代码语言:javascript
复制
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()

错误:

代码语言:javascript
复制
TypeError: test() missing 1 required positional argument: 'message'
EN

回答 1

Stack Overflow用户

发布于 2020-01-27 15:25:54

作者:miguelgrinberg

好的,那么Socket.IO如何知道self的值应该是您在文件底部创建的测试对象呢?当您以这种方式设置处理程序时,实际上没有到Test类的实际实例的链接。

在实例化类之后,尝试设置处理程序,可能如下所示:

代码语言:javascript
复制
def run(self):
    sio.on('test', self.test)
    sio.connect('ws://127.0.0.1:5000')
    sio.wait()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59912188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档