所以,我做了一个跟踪twitter关注者的脚本,脚本的大部分工作分两部分完成:一个函数track_user(old_followers: dict, screen_name: str) -> dict
,其中dict
包含新关注者和未关注者的信息;第二个函数从第一个函数中获取dict
,解析它,并将其转换为有意义的文本。
我的困境是:我希望这个脚本的其他用户能够插入他们自己的独立于我自己的代码。
下面我给予一个例子
# My code
def track_user(old_followers: dict, screen_name: str) -> dict:
final_dict = tracking_code_here()
SomeEventBus.emit(TrackUserEvent(final_dict))
return final_dict
# Some user's code (using my example above as an example)
def convert_tracking_to_text(event: TrackUserEvent):
perform_some_text_conversion(event.final_dict)
return
# Maybe a decorator can be used in this case instead
MyScript.EventBus.AddListener(TrackUserEvent, convert_tracking_to_text)
希望这是有意义的。我只想让我的脚本发出其他人可以导入和侦听的事件。
2条答案
按热度按时间k7fdbhmy1#
我以前做了一个用于处理异步事件的library。
它离完美还很远,但我希望它能帮助你。
7uzetpgm2#
我接受了另一个答案,因为它很有用,而且确实回答了问题,但我改用了event-bus库。
例如
在另一个文件里,
Full example repo