@chtopisatsuda

Ошибка TypeError: marks_message() missing 1 required positional argument: 'marks' почему?

Есть код в котором проверяется если сообщение == оценки
то идет вывод оценок в сообщениях, если я напишу оценки в чате один раз, то бот выводит оценки, но если напишу еще раз, выводит такую ошибку:
TypeError: marks_message() missing 1 required positional argument: 'marks'

marks_message():
@bot.message_handler(content_types=['text'])
def marks_message(message, marks):
    if message.text.lower() == 'оценки':
        for mr in marks:
            bot.send_message(message.chat.id, f"{' ' + mr[1] + ':'}\n{' ' + mr[2].translate({ord ('['): None})}")

reg():
def reg(message, loginDb, passwordDb):
    sqlite_select_query = """SELECT * from dn"""
    cursor.execute(sqlite_select_query)
    cursor.close
    records = cursor.fetchall()
    print("Всего строк:  ", len(records))
    print("Вывод каждой строки")
    for row in records:
        loginDb = row[0]
        passwordDb = row[1]
        print("Логин:", row[0])
        print("Пароль:", row[1])
    d = Dnevnik(login=loginDb, password=passwordDb)
    marks = d.marks()
    bot.send_message(message.chat.id, ' Вы успешно вошли в аккаунт ' + loginDb)
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton(" Домашняя работа")
    btn2 = types.KeyboardButton("оценки")
    markup.add(btn1, btn2)
    bot.send_message(message.chat.id, 'Выберите в меню действие... ', reply_markup=markup)
    marks_message(message, marks)
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
@bot.message_handler(content_types=['text'])
def marks_message(message, marks):


marks_message(message, marks)
Плохая идея. Ты уже решай - или функция является обработчиком события от бота, и тогда её параметры определяются библиотекой, или функция вызывается тобой.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Потому что хэндлер принимает только сообщения
Откуда берутся marks? И что это вообще такое?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы