Начал изучение Python+Telebot
Столкнулся с необходимостью выноса обработчика next_step_handler в отдельные файлы (модули). Не очень ясно, что и куда импортировать при такой необходимости. Нашел информацию о том, что декоратор - это просто вызов функции, в которую передаётся функция или класс. И применил такую конструкцию:
bot.py
import telebot
import config
bot = telebot.TeleBot(config.token)
from functions import init_bot as init_second
init_second(bot)
if __name__=='__main__':
bot.polling(none_stop=True)
functions.py
def start(message):
msg = bot.send_message(message.chat.id, f'_Введи имя:_', parse_mode='markdown')
bot.register_next_step_handler(msg, step1)
def step1(message):
name = message.text
msg = bot.send_message(message.chat.id, f'_Введи фамилию:_', parse_mode='markdown')
bot.register_next_step_handler(msg, step2, name)
def step2(message, name):
surname = message.text
bot.send_message(message.chat.id, f'Фамилия: {surname} Имя: {name}', parse_mode='markdown')
def init_bot(bot):
bot.message_handler(commands=['start']) (start)
Но, к сожалению, этот код - не работает.
Я не могу понять, как мне передать переменную bot в вызов функции Start которого файла.
Или, возможно, я вообще все делаю не так.