@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, пишет что оффнул но ничего не произошло
  • Вопрос задан
  • 143 просмотра
Решения вопроса 2
SoreMix
@SoreMix Куратор тега Python
yellow
но ничего не произошло

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

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

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