Объект не имеет атрибута "добавить"? - PullRequest
0 голосов
/ 21 марта 2019

Я работаю над упрощенной сортировкой шапки чата и использую потоки для обработки синхронизации между входами. Однако, когда я передаю l (список) для создания потока, тип l теперь будет sorting_hat, поэтому у него нет атрибута «добавление». Как мне сохранить объект списка в input_thread?

примечание: это не домашнее задание. Я студент, который работает над этим как побочный проект, чтобы преподавать урок CS для старшеклассников, чтобы повысить интерес к информатике. Будем благодарны за любую помощь!

class sorting_hat:
    def __init__(self, *args, **kwargs):
        self.gryffindor = 0
        self.ravenclaw = 0
        self.hufflepuff = 0
        self.slytherin = 0
        self.start = 0
        self.name = ""
        self.sort()

    def sort(self):
        print("Oh, you may not think I’m pretty,\n" +
              "But don’t judge on what you see,\n" +
              "I’ll eat myself if you can find\n" +
              "A smarter hat than me.\n" +
              "There’s nothing hidden in your head\n" +
              "The Sorting Hat can’t see,\n" +
              "So try me on and I will tell you\n" +
              "Where you ought to be.\n")
        time.sleep(1.5)
        self.prompt_init_response()

    def prompt_init_response(self):
        self.start = time.time()
        l = []
        t = threading.Thread(group=None, target=self.input_thread, args=(l,))
        t.start()
        flag10 = False
        flag25 = False
        while 1:
            if l:
                self.name = l[0]
                break
            elapsed = time.time() - self.start
            if elapsed > 10 and flag10 is False:
                flag10 = True
                print("Well, well, well...")
                print("Are you gonna just sit there or are you gonna introduce yourself? Name?")
            elif elapsed > 25 and flag25 is False:
                flag25 = True
                print("I'll just doze off then until you give me your name... Zzzzz")


    def input_thread(l, *args):
        print(type(l))
        name = input("Oh! A new student! What's your name?")
        l.append(name)
...