@sbuw

Typeerror, как решить хз, поможите?

Просто провожу тест, решил получить всех пользователей с помощью get_chat_members(), библиотека pyrogram, в итоге ошибка:

get_userss() takes 1 positional argument but 2 were given
Traceback (most recent call last):
  File "C:\Users\meknk\AppData\Local\Programs\Python\Python39\lib\site-packages\pyrogram\dispatcher.py", line 240, in handler_worker        
    await handler.callback(self.client, *args)
TypeError: get_userss() takes 1 positional argument but 2 were given


Код:
@app.on_message(filters.command('all_users'))
async def get_userss(message):
	bots = ''
	async for user in app.get_chat_members(chat_id=message.chat.id):
		bots += f"{user}\n"
	app.send_message(message.chat.id, bots)
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Читаем текст ошибки: get_userss() takes 1 positional argument but 2 were given. Иными словами, pytogram передал твоей функции 2 аргумента, а она принимает только один.
Смотрим заголовок твоей функции:
async def get_userss(message):  # <-- принимает один аргумент!

Открываем документацию pyrogram, смотрим первый же пример кода:
@app.on_message(filters.private)
async def hello(client, message):  # <--- обработчик принимает два аргумента!
    await message.reply("Hello from Pyrogram!")


Вывод: pyrogram ожидает, что функция-обработчик события примет 2 аргумента, а ты её объявил криво, с одним. Ну и не потрудился открыть документацию, я полагаю, иначе сразу бы заметил разницу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы