我正在使用github的API为TS3创建一个机器人。
在main.py中,我使用TS3Connection类创建了一个名为ts3conn的连接实例。然后我注册一个事件,如下所示:`ts3conn.register_for_channel_events(channel_id,event_handler)
在module.py中,我创建了一个event_handler,如下所示:
event_handler(sender, **kw):
event = kw["event"] # variable 'event' contains target_channel_id (to which client moved) and client_id
# Here I need to use the ts3conn instance from main, don't know how.因此,我尝试在module.py中执行from main import ts3conn,但它停止了。我试图理解TS3Connection.py和Events.py (最重要的两个文件),但作者使用了模块"blinker“,我不知道如何编辑这些文件。
如果您能够帮助我,我很乐意接受解决问题的原始方法,但我也希望继续使用main的当前结构,其中包含连接和模块目录,其中包含使用该连接与TS3服务器通信的函数。
发布于 2020-11-24 06:01:41
使用一个类包装handling_event函数,该类将在调用时将ts3conn传递给处理程序。
class event_handler(object):
def __init__(self, ts3conn):
self.ts3conn = ts3conn
def handle_event(self, sender, **kw):
print(self.ts3conn)
# some operations on ts3conn
# in main
handler = event_handler(ts3conn)
ts3conn.register_for_channel_events(1, handler.handle_event)https://stackoverflow.com/questions/64959236
复制相似问题