@Baga12324
Учу Python

Почему скрипт не работает?

Код:

antimats = bool

def mode(arg):
    return arg.split()[1]


@bot.message_handler(commands=['antim'])
def mat(message):
    mod=mode(message.text)
    if mod == 'on':
        bot.reply_to(message, 'Антимат включен!')
        antimats = True
    elif mod == 'off':
        bot.reply_to(message, 'Антимат выключен!')
        antimats = False
    elif mod == None:
        bot.reply_to(message, 'Укажите параметр(on/off)')


@bot.message_handler(content_types=['text'])
def get_text_messages(message):
if antimats == True:
        names = ['mats']
        for name in names:
            if name in message.text.lower():
                bot.reply_to(message, ' Не матерись!')
    elif antimats == False:
        names = ['mats']
        for name in names:
            if name in message.text.lower():
                None


Когда ввожу /antim on бот пишет что антимат включился но он не работает, так же с /antim off, пишет что оффнул но ничего не произошло
  • Вопрос задан
  • 108 просмотров
Решения вопроса 2
SoreMix
@SoreMix Куратор тега Python
yellow
но ничего не произошло

Ничего и не должно произойти, вы изменяете локальную переменную, глобальная никак не меняется, так что она равна классу bool всегда. Делайте какой нибудь конфиг, из которого будете читать ваш параметр переключаемый
Ответ написан
@ODNik
Я думаю, что последний elif явно не нужен. А ещё не помешало бы описание того, что именно не работает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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