@Myhabr02

Почему при импорте класса в python он теряет self?

создаю класс,в файле function.py
class fnc():
  def send_msg(self, message = None,attachment = None,**args):
    vk.messages.send(
      peer_id = peer_id,
      random_id = get_random_id(),
      disable_mentions = 1,
      message = message,
      attachment = attachment, **args)

Импортирую и вызываю его в файле bot.py
import vk_api
import requests
from vk_api.bot_longpoll import VkBotLongPoll
from vk_api.bot_longpoll import VkBotEventType
from vk_api.utils import get_random_id
from function import fnc

for event in longpoll.listen():
    if event.type == VkBotEventType.MESSAGE_NEW:
      user_stat_id = event.obj['message']['from_id']
      vk_message = event.obj['message']
      peer_id = vk_message['peer_id']
      text = vk_message['text']
      if  text.lower() == '1':
        fnc.send_msg(message="text")

выдаёт ошибку:
File "bot.py", line 34, in
fnc.send_msg(message="text")
TypeError: send_msg() missing 1 required positional argument: 'self'
куда поставить аргумент "self",чтобы такого не было
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
kgb_zor
@kgb_zor
I need your traceback.
Вам нужно создать экземпляр класса.
fnc = fnc()

И вообще правильнее будет
class Fnc:
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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