Как извлечь переменную из функции в Python?

#python

#python

Вопрос:

Я создаю программу, которая собирает информацию о шине с сервера и отправляет ее пользователю через Facebook Messenger. Это работает нормально, но я пытаюсь добавить функциональность, которая разбивает действительно длинные расписания на отдельные сообщения. Для этого мне пришлось создать оператор if, который обнаруживает действительно длинные расписания, разделяет их и вызывает send_message функцию из моего основного файла, app.py

Вот часть функции app с переменной, которую мне нужно извлечь:

 for messaging_event in entry["messaging"]:

                if messaging_event.get("message"):  # someone sent us a message

                    sender_id = messaging_event["sender"]["id"]        # the facebook ID of the person sending you the message
                    recipient_id = messaging_event["recipient"]["id"]  # the recipient's ID, which should be your page's facebook ID
                    message_text = messaging_event["message"]["text"]  # the message's text
                    tobesent = messaging_event["message"]["text"]

                    send_message(sender_id, fetch.fetchtime(tobesent))
  

и вот оператор if, в fetch котором обнаруживает длинные сообщения, разделяет их и вызывает send_message функцию из другого файла, app.py :

 if len(info["results"]) > 5:
            for i, chunk in enumerate(chunks(info, 5), 1):
                app.send_message((USER ID SHOULD BE HERE, 'Listing part: {}n n{}'.format(i, chunk)))
  

Я пытаюсь вызвать send_message функцию из app.py , но для этого требуется два аргумента sender_id и текст сообщения. Как я могу получить sender_id переменную из этой функции и использовать ее в fetch ? Я пытался вернуть ее и вызвать функцию, но у меня это не работает.

РЕДАКТИРОВАТЬ: ошибка

 Traceback (most recent call last):
  File "bus.py", line 7, in <module>
    print fetch.fetchtime(stopnum)
  File "/home/ryan/fb-messenger-bot-master/fetch.py", line 17, in fetchtime
    send_message((webhook(),'Listing part: {}n n{}'.format(i, chunk)))
  File "/home/ryan/fb-messenger-bot-master/app.py", line 30, in webhook
    data = request.get_json()
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 343, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 302, in _get_current_object
    return self.__local()
  File "/usr/local/lib/python2.7/dist-packages/flask/globals.py", line 37, in _lookup_req_object
    raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.

This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.
  

Комментарии:

1. Мы не понимаем вашу проблему.

2. Вы получаете сообщение об ошибке? Всегда показывайте это. Добавьте полное сообщение об ошибке в свой вопрос.

3. Как вы вызываете app.py код из fetch.py fetch.some_function(...) ? Вы не можете позвонить fetch.some_function(sender_id , ...) ?

4. @furas я использую from app import * — я пытаюсь вызвать send_message функцию внутри app из fetch

5. @furas Я добавил ошибку.