![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
redbaron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 16.11.2006 Репутация: нет Всего: нет |
Занялся изучением питона, и возникла такая проблема: одна программа генерирует события, а неограниченное число других (ввиде плагинов или просто в виде отдельных модулей) должны слушать эти события (не все , а только сами которые выберут) и реагировать на них. Как это реализовать? в C# есть delegate и event, а тут как провернуть такой трюк?
Для наглядности предсатвлю все упрощенно:
задача: заранее неизвестное количество модулей должны "подписаться" на заранее неизвестное количество событий и когда эти события происходят данные модули должны быть оповещены и им должны быть переданы соотв. данные. Причем те модули которые "подписаны" на событие 2 и 3 при никотором значении i должны быть "оповещены" дважды - по разу на каждое событие. Светлые умы, подскажите плиз как решить такую задачку. Впринципе "заранее неизвостное количество" это громко сказано, меня вполне устроит если "подключение" таких модулей будет сведено к добавлению одной строки вызова в основную программу. |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 10 Всего: 173 |
Функции в Питоне являются first class objects, так что изобразить подобное труда не составляет. Попытка эмуляции синтаксиса C#:
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: 18 Всего: 50 |
Эх, а я уж было хотел на Qt /SIGNAL/SLOT пример писать,а тут все красивее и средствами чистого Питона
![]() -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |