@diloger

Из-за чего возникла ошибка 'TypeError: Bot.send_message() missing 1 required positional argument: 'text''?

Сегодня изучал как программируют тг ботов и начал смотреть видео курс, но во время проверки бота появляется ошибка "TypeError: Bot.send_message() missing 1 required positional argument: 'text'"
Вот код бота:
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor

import os


dp  = Dispatcher(bot=Bot(token='Токен бота'))


@dp.message_handler()
async def echo_send(message : types.Message):
    #await message.answer(message.text) 
    #await message.reply(message.text)
    await Bot.send_message(message.from_user.id,  message.text)

В чем может быть ошибка?
  • Вопрос задан
  • 660 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
await Bot.send_message(message.from_user.id, message.text)

Ты пытаешься вызвать метод класса Bot, а не экземпляра bot.

Поясню. В питоне методы устроены довольно прямолинейно:
class Test:
    def test(self, x):
        print(f"Я {self} и я получил {x}")

t = Test()  # создаём экземпляр
t.test(42)  # Я <__main__.Test object at 0x000001BB195CBC70> и я получил 42
# это тоже сработает, и это практически эквивалентно вызову выше
Test.test(t, 42)  # Я <__main__.Test object at 0x000001BB195CBC70> и я получил 42
# а это - то, что попытался сделать ты:
Test.test(42)  # TypeError: Test.test() missing 1 required positional argument: 'x'
# потому что вызван метод класса, а не объекта, и его первый параметр (42) интерпретирован как self
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
04 мая 2024, в 22:17
12000 руб./за проект
04 мая 2024, в 22:17
10000 руб./за проект
04 мая 2024, в 22:14
2000 руб./за проект