Ошибка типа: YN_prompt() отсутствует 1 требуемый позиционный аргумент: ‘self’

#python

#python

Вопрос:

Я новичок в python, и я как бы застрял. Когда я запускаю свою программу, я получаю это

 "Traceback (most recent call last):
  File "C:/Users/Dell/Documents/Code/junk.py", line 1, in <module>
    class E:
  File "C:/Users/Dell/Documents/Code/junk.py", line 27, in E
    YN_prompt()
TypeError: YN_prompt() missing 1 required positional argument: 'self'
  

Я не понимаю, что я делаю не так, может кто-нибудь, пожалуйста, объясните мне, что означает это сообщение об ошибке? Спасибо.

 class E:
    import random
    import time
    thing = 1
    cookie = random.randrange(4)

    def YN_prompt(self):
        ugly = 1
        while ugly == 1:
            yn = input("n Go again? y/n n")
            if yn == ("y"):
                continue
            elif yn == ("n"):
                quit()
            else:
                print("ILLEGAL VALUE, CHOOSING ANOTER")
                time.sleep(0.2)
                continue


    while thing == 1:
        if cookie == 0:
            print("hi")
            YN_prompt()
        elif cookie == 1:
            print("no")
            YN_prompt()
        elif cookie == 2:
            print("why")
            YN_prompt()
        elif cookie == 3:
            print("when")
            YN_prompt()
        elif cookie == 4:
            print("who")
            YN_prompt()
  

Ответ №1:

Похоже, вы хотели сохранить цикл while внутри своего класса :

 class E:
    import random
    import time
    thing = 1
    cookie = random.randrange(4)

    def YN_prompt(self):
        ugly = 1
        while ugly == 1:
            yn = input("n Go again? y/n n")
            if yn == ("y"):
                continue
            elif yn == ("n"):
                quit()
            else:
                print("ILLEGAL VALUE, CHOOSING ANOTER")
                time.sleep(0.2)
                continue

                while thing == 1:
                    if cookie == 0:
                        print("hi")
                        YN_prompt()
                    elif cookie == 1:
                        print("no")
                        YN_prompt()
                    elif cookie == 2:
                        print("why")
                        YN_prompt()
                    elif cookie == 3:
                        print("when")
                        YN_prompt()
                    elif cookie == 4:
                        print("who")
                        YN_prompt()