Форум сайта python.su
Занялся изучением питона, и возникла такая проблема: одна программа генерирует события, а неограниченное число других (ввиде плагинов или просто в виде отдельных модулей) должны слушать эти события (не все , а только сами которые выберут) и реагировать на них. Как это реализовать? в C# есть delegate и event, а тут как провернуть такой трюк?
Для наглядности предсатвлю все упрощенно:
import math
for i in range(100):
if fmod(i,2)==0:
//событие один. тот кто его слушает должен получить значение i
elif fmod(i,5)==0:
//событие два. тот кто его слушает должен получить номер итерации
elif fmod(i,10)==0:
//событие три. тот кто его слушает не должен ничего получать, просто должен знать что событие случилось
задача: заранее неизвестное количество модулей должны “подписаться” на заранее неизвестное количество событий и когда эти события происходят данные модули должны быть оповещены и им должны быть переданы соотв. данные. Причем те модули которые “подписаны” на событие 2 и 3 при некотором значении i должны быть “оповещены” дважды - по разу на каждое событие.
Светлые умы, подскажите плиз как решить такую задачку.
Впринципе “заранее неизвостное количество” это громко сказано, меня вполне устроит если “подключение” таких модулей будет сведено к добавлению одной строки вызова в основную программу.
Офлайн
Офлайн
Офлайн
Офлайн