Этот вопрос закрыт для ответов, так как повторяет вопрос Почему выскакивает ошибка AttributeError?
@sashx

Почему возникает ошибка при использовании функции load_next_step_handlers()?

Почему возникает ошибка:

Traceback (most recent call last):
  File "/Users/...", line 117, in <module>
    bot.load_next_step_handlers()
  File "/Users/...", line 248, in load_next_step_handlers
    self.next_step_backend.load_handlers(filename, del_file_after_loading)
  File "/Users/aleksandr/PycharmProjects/Stelage_Bot/venv/lib/python3.8/site-packages/telebot/handler_backends.py", line 86, in load_handlers
    tmp = self.return_load_handlers(filename, del_file_after_loading=del_file_after_loading)
  File "/Users/aleksandr/PycharmProjects/Stelage_Bot/venv/lib/python3.8/site-packages/telebot/handler_backends.py", line 111, in return_load_handlers
    handlers = pickle.load(file)
AttributeError: Can't get attribute 'process_age_step' on <module '__main__' from '/Users/aleksandr/PycharmProjects/Stelage_Bot/calculator.py'>


Код

import telebot

API_TOKEN = 'TOKEN'

bot = telebot.TeleBot(API_TOKEN)

user_dict = {}


class model:
    def __init__(self, producer):
        self.producer = producer  # Производитель
        self.color = None  # Цвет
        self.weight = None  # Вес
        self.mod = None  # Модель
        self.height = None  # Высота
        self.width = None  # Ширина
        self.depth = None  # Глубина
        self.shelf = None  # Количество полок
        self.load = None  # Нагрузка
        self.step = None  # Шаг перестановки
        self.compSet = None  # Комплектация
        self.assembling = None  # Сборка
        self.connectionType = None  # Тип соединения
        self.payload = None  # Грузоподъёмность
        self.fixing = None  # Назначение
        self.name = None  # Название
        self.price = None  # Цена


@bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
    msg = bot.reply_to(message.chat.id,
                       'Давайте подберём стеллаж для Вас! Выберете производителя!')

    bot.register_next_step_handler(msg, producer_step)


def producer_step(message):
    try:
        chat_id = message.chat.id
        name = message.text
        user = model(name)
        user_dict[chat_id] = user
        msg = bot.reply_to(message, 'How old are you?')
        bot.register_next_step_handler(msg, color_step)
    except Exception as e:
        bot.reply_to(message, 'oooops')


def color_step(message):
    return


def weight_step(message):
    return


def mod_step(message):
    return


def height_step(message):
    return


def width_step(message):
    return


def depth_step(message):
    return


def shelf_step(message):
    return


def load_step(message):
    return


def step_step(message):
    return


def compSet_step(message):
    return


def assembling_step(message):
    return


def connectionType_step(message):
    return


def payload_step(message):
    return


def fixing_step(message):
    return


def name_step(message):
    return


def price_step(message):
    return


bot.enable_save_next_step_handlers(delay=2)
bot.load_next_step_handlers()
bot.polling()


Этот бот - обычная анкета. Каждый вопрос - отдельная функция. Не понимаю, в чём ошибка возникает. Подскажите, какой файл нужно добавить? Возможно, как-то неправильно использую функцию register_next_step_handler()?
  • Вопрос задан
  • 68 просмотров
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект