pytelegrambotapi, @bot.callback_query_handler выдает непонятную ошибку
Выдает непонятную ошибку, функция act3 не может принимать два значения, но как сделать так, чтобы код заработал? Уже долго не могу понять как, помогите плиз
def act2(message):
global temp
key = message.text
user_id = message.from_user.id
markup = types.InlineKeyboardMarkup(row_width=1)
for i in range(temp, temp + 10):
markup.add(
types.InlineKeyboardButton(text=f'{track[i]} - {artist[i]}', callback_data=f'btn{i}')
)
nextbtn = types.InlineKeyboardButton('➡️', callback_data='next')
backbtn = types.InlineKeyboardButton('⬅️', callback_data='back')
markup.add(backbtn, nextbtn, row_width=2)
bot.send_message(user_id, f'{key}:', reply_markup=markup)
@bot.callback_query_handler(func=lambda call: True)
def act3(call, message):
global temp
if call.data == 'next':
temp += 10
act2(message)
Вот сам код ошибки:
File "D:/pythonProject/main.py", line 87, in <module>
bot.polling(none_stop=True, interval=0)
File "D:\pythonProject\venv\lib\site-packages\telebot\__init__.py", line 637, in polling
self.__threaded_polling(non_stop, interval, timeout, long_polling_timeout, allowed_updates)
File "D:\pythonProject\venv\lib\site-packages\telebot\__init__.py", line 699, in __threaded_polling
raise e
File "D:\pythonProject\venv\lib\site-packages\telebot\__init__.py", line 659, in __threaded_polling
self.worker_pool.raise_exceptions()
File "D:\pythonProject\venv\lib\site-packages\telebot\util.py", line 130, in raise_exceptions
raise self.exception_info
File "D:\pythonProject\venv\lib\site-packages\telebot\util.py", line 82, in run
task(*args, **kwargs)
TypeError: act3() missing 1 required positional argument: 'message'
Ответы (1 шт):
Автор решения: torrua
→ Ссылка
Сообщение об ошибке говорит вам, что в функцию act3 не был передан аргумент message. Обработчик всегда будет передавать ей только call, а объект message нужно извлечь самому:
@bot.callback_query_handler(func=lambda call: True)
def act3(call):
global temp
if call.data == 'next':
temp += 10
act2(call.message)