Какая лучшая библиотека диспетчера / обратного вызова в Python?

Мне нужно разрешить другим приложениям Python регистрировать функции обратного вызова для событий в моем приложении. Они должны иметь связанные с ними приоритеты (поэтому обратный вызов с приоритетом 10 запускается перед обратным вызовом с приоритетом 1), а функции обратного вызова должны иметь возможность сигнализировать об ошибках диспетчеру.

Все это легкие обратные вызовы, выполняемые в одном процессе, поэтому мне не нужно посылать сигналы через границы процесса.

Есть ли хорошая библиотека Python, чтобы справиться с этим, или мне нужно написать свою собственную?

Разве это не обман этого stackoverflow.com/questions/115844/…

Florian Bösch 23.09.2008 03:32

@ Флориан: Я думаю, что Крису нужны библиотеки, которые будут отправлять события между двумя отдельными приложениями.

John Millikin 23.09.2008 03:41
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
2
1 707
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Эти другие приложения работают в другом адресном пространстве? Если это так, вам необходимо использовать библиотеку межпроцессного взаимодействия, например D-BUS.

Если вы просто отправляете сигналы в том же процессе, попробуйте PyDispatcher

Позволяет ли PyDispatcher вызывающим абонентам устанавливать приоритет своих методов? Или возвращаемые значения?

Chris B. 23.09.2008 04:14

Нет приоритета, но это то, что вы можете написать для выполнения функции регистрации сигнала. Не уверен, что вы имеете в виду под возвращаемыми значениями - я считаю, что PyDispatcher возвращает результат вызова всех обратных вызовов в виде списка.

John Millikin 23.09.2008 07:39

На какой платформе вы работаете? GObject - это основа графического интерфейса GTK, широко используемого в Linux, и он поддерживает циклы событий с такими событиями, приоритезируемыми как это.

Попробуйте Twisted для чего-нибудь, связанного с сетью. Его перспективный брокер довольно удобен.

Попробуйте python-callbacks - http://code.google.com/p/python-callbacks/.

Другие вопросы по теме