Как автор библиотеки предоставляет обратную связь для произвольного вызывающего приложения или библиотеки - PullRequest
0 голосов
/ 14 апреля 2019

Я пишу код, который хотел бы упаковать в виде библиотеки.Он может быть вызван из пользовательского интерфейса или из другой библиотеки, и он не известен заранее.Какой механизм необходим для предоставления статуса или обратной связи вызывающему абоненту?

Моей первой мыслью был обратный вызов:

def callback(status):
    print(status)

def do_stuff(some_objects, callback = None)
    for something in some_objects:
        status = stuff()
        if callback:
            callback(status)

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...