Не работает класс, ничего не происходит.

Крышечка

Новичок
Пользователь
Июн 24, 2020
6
0
1
Я новичок, делаю небольшого бота, вроде как все правильно, ошибок нет, но и ничего не происходит, причину не знаю.

Python:
class bot:

    def __init__(self,name):
        self.name = name

    def check(self):
        if {0}.format(self.name) != "Меню":
            print("Проверьте правильность написание команды 'Меню'.")
        else:
            print(' Интересы\n Способности')

    def chance_1(self):
        if {0}.format(self.name) == "Интересы":
            print("!!!")

    def chance_2(self):
        if {0}.format(self.name) == "Способности":
            print("***")


print("Введите 'Меню', чтобы узнать список команд.(без ковычек)")

while True:
    t = bot(input())
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Вам нужно подучить основы питона. По коду видно что вы плохо знаете синтаксис языка.
Вот зацикленный пример (просто зациклил код, так как не понятно как он должен работать и зачем в нем нужно использовать класс):
Python:
class bot:

    def __init__(self):
        self.command = ''

    def set_command(self, command):
        self.command = command
        self.check()

    def check(self):
        if self.command != "Меню":
            print("Проверьте правильность написание команды 'Меню'.")
        else:
            print(' Интересы\n Способности')
            self.command = input()
            if self.command == "Интересы":
                print("!!!")
            elif self.command == "Способности":
                print("***")
            else:
                print("Введите 'Меню', чтобы узнать список команд.(без кавычек)")


human = bot()

while True:
    print("Введите 'Меню', чтобы узнать список команд.(без кавычек)")
    human.set_command(input())
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Не работает потому что экземпляр класса в коде создается, но его методы не вызываются. Кроме того, экземпляр класса создается в цикле - лучше делать это вне цикла.
 

Крышечка

Новичок
Пользователь
Июн 24, 2020
6
0
1
Не работает потому что экземпляр класса в коде создается, но его методы не вызываются. Кроме того, экземпляр класса создается в цикле - лучше делать это вне цикла.
Python:
class bot:

    def __init__(self,name):
        self.name = name

    def check(self):
        if {0}.format(self.name) != "Меню":
            print("Проверьте правильность написание команды 'Меню'.")

        else:
            print(' Интересы\n Способности')

    def chance_1(self):
        if {0}.format(self.name) == "Интересы":
            print("!!!")
        else:
            check()

    def chance_2(self):
        if {0}.format(self.name) == "Способности":
            print("***")
        else:
            check()

print("Введите 'Меню', чтобы узнать список команд.(без ковычек)")

human.str = bot(print(">>>"), input())
human.check()
human.chance_1()
human.chance_2()

Я вынул объект из цикла и вызвал функции, однако это не помогло, и можно как нибудь зациклить объект ,чтобы код не заканчивался?
 

Форум IT Специалистов