Найти - Пользователи
Полная версия: Как реализовать "слушателей" событий?
Начало » Python для экспертов » Как реализовать "слушателей" событий?
1
redbaron
Занялся изучением питона, и возникла такая проблема: одна программа генерирует события, а неограниченное число других (ввиде плагинов или просто в виде отдельных модулей) должны слушать эти события (не все , а только сами которые выберут) и реагировать на них. Как это реализовать? в 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 должны быть “оповещены” дважды - по разу на каждое событие.

Светлые умы, подскажите плиз как решить такую задачку.

Впринципе “заранее неизвостное количество” это громко сказано, меня вполне устроит если “подключение” таких модулей будет сведено к добавлению одной строки вызова в основную программу.
slivlen
Посмотри здесь: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/415310
и еще здесь: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/410686
dvs
http://www.intuit.ru/goto/lecture/586/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB