首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用装饰器打印python-socketio事件信息

使用装饰器打印python-socketio事件信息
EN

Stack Overflow用户
提问于 2021-05-15 19:20:41
回答 1查看 51关注 0票数 0

我想改进一下socketio.event装饰器,让它打印触发的事件及其参数。我有一个具有self.sio: socketio.Server属性的Manager类。我尝试将一个新的装饰器定义为一个Manager方法,比如它返回一个由self.sio.event修饰的函数,该函数还打印它的数据。我已经尝试过这个解决方案,但它不起作用:

代码语言:javascript
复制
    def event(self, func):
        @self.sio.event
        def wrapper(*args, **kwargs):
            print(f'[{func.__name__}] : {args} {kwargs}')
            func(*args, **kwargs)
        return wrapper

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-16 18:28:34

我认为这样的东西对你来说应该是有效的:

代码语言:javascript
复制
    def event(self, func):
        def wrapper(*args, **kwargs):
            print(f'[{func.__name__}] : {args} {kwargs}')
            return func(*args, **kwargs)
        return self.sio.on(func.__name__, wrapper)

您不能真正在包装器上使用@sio.event,因为将要配置的事件将被命名为wrapper。我的解决方案使用@sio.on装饰器,它显式地接受事件名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67546162

复制
相关文章

相似问题

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