#python #import
#python #импорт
Вопрос:
bot2.py
from flask import Flask, request
import requests
from twilio.twiml.messaging_response import MessagingResponse
app = Flask(__name__)
@app.route('/bot', methods=['POST'])
def bot():
incoming_msg = request.values.get('Body', '').lower()
resp = MessagingResponse()
msg = resp.message()
constparam = incoming_msg
print(constparam)
msg.body(constparam)
return str(resp)
if __name__ == '__main__':
app.run()
dummy.py
from bot2 import app,bot
import time
while 1:
print(bot.constparam)
time.sleep(5)
Я хочу использовать переменную constparam из bot2.py в dummy.py
Комментарии:
1. Что вы ожидаете
print(bot.constparam)
вывести доbot()
Flask
того, как фреймворк был вызван?
Ответ №1:
Я не знаком с тем, как Flask предоставляет свои экземпляры, но обычно можно импортировать и получить доступ к любой переменной или объекту верхнего уровня. Однако, поскольку bot
это функция, все ее переменные (включая constparam
) являются частными и доступны только внутри этой функции. Единственное, что вы можете сделать constparam
, это создать вместо этого глобальную переменную, доступ к которой можно получить из любого модуля, который импортирует файл. Поскольку вы начнете с установки переменной, вам сначала нужно будет добавить a global constparam
в bot
функцию, прежде чем произойдет что-либо еще, связанное с constparam
этим.
Комментарии:
1. я только что создал constparam как глобальный, но все равно не могу получить к нему доступ.
2. По умолчанию присвоение переменным в функции все равно создаст локальную версию. Убедитесь, что вы добавили
global constparam
строку, чтобы объявить, что вы хотите использовать глобальную переменную, а не создавать локальную. Я забыл прямо упомянуть об этом, но вам также придется добавитьconstparam
в свой список импорта и получить к нему доступ как к глобальной переменной вместо свойства.