Проблема в использовании импортированного модуля

Рейтинг: 0Ответов: 1Опубликовано: 30.01.2023

Столкнулся с проблемой: разбив всего бота по модулям, импортирую его в другие такие же модули и вот проблема, в одном модуле задана переменная dp, я её импортирую в другой модуль и там, пока она не в функции, код её видит, но как я её отправляю в функцию, PyCharm подсказывает что я её не использую.

Вопрос-как сделать так, чтобы импортированная переменная использовалась в функции? Спасибо

from aiogram import types, Dispatcher
from create_bot import dp, bot
#                     ^^^^
from keyboards import kb_client
from aiogram.types import ReplyKeyboardRemove

# Тут между код из декораторов и т.д. и т.п.

def register_handlers_clients(dp: Dispatcher):
    dp.register_message_handler(command_start, commands=['start', 'help'])
    dp.register_message_handler(support, commands=["Режим_работы"])
    dp.register_message_handler(where_you_from, commands=["Расположение"])

Ответы

▲ 0

Есть понятия глобальные переменные и локальные переменные. Переменные объявленные внутри функции называются локальными. Поэтому если вы хотите обратится именно к этой переменной то ее внутри функции можно объявить глобальной

def register_handlers_clients():
    global dp
    dp.register_message_handler(command_start, commands=['start', 'help'])
    dp.register_message_handler(support, commands=["Режим_работы"])
    dp.register_message_handler(where_you_from, commands=["Расположение"])

Ну и если будет интересно и захочется больше понять тему, то почитайте тут )