NameError: имя 'ChildFirstBox4' не определено ошибкой для всех, кроме одного

Я пытаюсь запустить оператор If, и мой виджет прокрутки работает только с любыми другими 1,2,3,4,5. Этот номер вводится пользователем в графический интерфейс, который затем определяет, какие строки используются для переменной TextForReview. Я получаю сообщение об ошибке «NameError: имя 'ChildFirstBox4' не определено», но это все глобальные переменные. Я использую виджет прокрутки для очистки графического интерфейса, поэтому перед тем, как попробовать виджет, .place будет работать для всех переменных. Есть ли что-то, что я неправильно вызываю или порядок функций правильный?

    def Scroll():
        global ChildScroll
        global text_area
        ForScrollText()
        # Title Label
        ChildScroll = Label(AppWindow, text = "ScrolledText Widget Example",
                            font=("Times New Roman", 15),background='green',
                            foreground = "white")
        ChildScroll.place(relx=0.5, rely=0.03)

       # Creating scrolled text area
        # widget with Read only by
        # disabling the state
        text_area = st.ScrolledText(AppWindow, width=15,height=8,
                            font=("Ariel",10))

        text_area.place(relx=0.5, rely=0.1, relheight=.4, relwidth=.3)
        # Inserting Text which is read only
        # IF statement + Batman functions
        text_area.insert(tk.INSERT, TextForReview)

        # Making the text read only
        text_area.configure(state='disabled')

    #All the different texts for info page for children
    def BatmanCommand():
        Batman1()
        Batman2()
        Batman3()
        Batman4()
        Batman5()
        Batman6()

    # Infomation for child 1
    def Batman1():
        global a
        a = ChildFirstBox1.get() + ", " + DOBBox1.get() + ", " + GenBox1.get() + ", " + AgeBox1.get()\
            + "\nShirt Size: " + ShirtBox1.get()\
            + "\nPants Size: " + PantsBox1.get()\
            + "\nShoes Size: " + ShoeBox1.get() \
            + "\nWish 1: " + WishBox1.get()\
            + "\nWish 2: " + WishBox2.get()\
            + "\nNeed: " + WishBox3.get()


    # Infomation for child 2
    def Batman2():
        global b
        b = ChildFirstBox2.get() + ", " + DOBBox2.get() + ", " + GenBox2.get() + ", " + AgeBox2.get()\
            + "\nShirt Size: " + ShirtBox2.get()\
            + "\nPants Size: " + PantsBox2.get()\
            + "\nShoes Size: " + ShoeBox2.get() \
            + "\nWish 1: " + WishBox1_2.get()   \
            + "\nWish 2: " + WishBox2_2.get()  \
            + "\nNeed: " + WishBox3_2.get()    \

    # Infomation for child 3
    def Batman3():
        global c
        c = ChildFirstBox3.get() + ", " + DOBBox3.get() + ", " + GenBox3.get() + ", " + AgeBox3.get()\
            + "\nShirt Size: " + ShirtBox3.get()\
            + "\nPants Size: " + PantsBox3.get()\
            + "\nShoes Size: " + ShoeBox3.get() \
            + "\nWish 1: " + WishBox1_3.get()   \
            + "\nWish 2: " + WishBox2_3.get()  \
            + "\nNeed: " + WishBox3_3.get()    \

    # Infomation for child 4
    def Batman4():
        global d
        d = ChildFirstBox4.get() + ", " + DOBBox4.get() + ", " + GenBox4.get() + ", " + AgeBox4.get()\
            + "\nShirt Size: " + ShirtBox4.get()\
            + "\nPants Size: " + PantsBox4.get()\
            + "\nShoes Size: " + ShoeBox4.get() \
            + "\nWish 1: " + WishBox1_4.get()   \
            + "\nWish 2: " + WishBox2_4.get()  \
            + "\nNeed: " + WishBox3_4.get()  \

    # Infomation for child 5
    def Batman5():
        global e
        e = ChildFirstBox5.get() + ", " + DOBBox5.get() + ", " + GenBox5.get() + ", " + AgeBox5.get()\
            + "\nShirt Size: " + ShirtBox5.get()\
            + "\nPants Size: " + PantsBox5.get()\
            + "\nShoes Size: " + ShoeBox5.get() \
            + "\nWish 1: " + WishBox1_5.get()   \
            + "\nWish 2: " + WishBox2_5.get()  \
            + "\nNeed: " + WishBox3_5.get()    \

    # Infomation for child 6
    def Batman6():
        global f
        f = ChildFirstBox6.get() + ", " + DOBBox6.get() + ", " + GenBox6.get() + ", " + AgeBox6.get()\
            + "\nShirt Size: " + ShirtBox6.get()\
            + "\nPants Size: " + PantsBox6.get()\
            + "\nShoes Size: " + ShoeBox6.get() \
            + "\nWish 1: " + WishBox1_6.get()   \
            + "\nWish 2: " + WishBox2_6.get()  \
            + "\nNeed: " + WishBox3_6.get()    \

    def ForScrollText():
        BatmanCommand()
        global TextForReview
        TextForReview = ""
        if NumKids.get() == "1":
            TextForReview = "  " + a

        elif NumKids.get() == "2":
            TextForReview = "  " + a + "\n\n" + b

        elif NumKids.get() == "3":
            TextForReview = "  " + a + "\n\n" + b + "\n\n" + c

        elif NumKids.get() == "4":
            TextForReview = "  " + a + "\n\n" + b + "\n\n" + c\
                            + "\n\n" + d

        elif NumKids.get() == "5":
            TextForReview = "  " + a + "\n\n" + b + "\n\n" + c\
                            + "\n\n" + d + "\n\n" + e

        else:
            TextForReview = "  " + a + "\n\n" + b + "\n\n" + c\
                            + "\n\n" + d + "\n\n" + e + "\n\n" + f

здесь определяется ChildFirstBox 4. Остальная часть .get () в приведенном выше коде определяется аналогично приведенному ниже коду.

    def Child4():
       global ChildFirstLabel4
       global ChildFirstBox4
       global ChildLastLabel4
       global ChildLastBox4
       global AgeLabel4
       global AgeBox4
       global ShirtsLabel4
       global ShirtBox4
       global PantsLabel4
       global PantsBox4
       global ShoeLabel4
       global ShoeBox4
       global GenLabel4
       global GenBox4
       global DOBLabel4
       global DOBBox4
       ChildFirstLabel4 = Label(AppWindow, text = "f name")
       ChildFirstLabel4.place(relx=0.6, rely=0.32)
       ChildFirstBox4 = Entry(AppWindow, width=10)
       ChildFirstBox4.insert(0, "")
       ChildFirstBox4.place(relx=0.6, rely=0.36)
       ChildLastLabel4 = Label(AppWindow, text = "l name")
       ChildLastLabel4.place(relx=0.68, rely=0.32)
       ChildLastBox4 = Entry(AppWindow, width=10)
       ChildLastBox4.insert(0, "")
       ChildLastBox4.place(relx=0.68, rely=0.36)
       AgeLabel4 = Label(AppWindow, text = "Enter Child's Age")
       AgeLabel4.place(relx=0.6, rely=0.4)
       AgeBox4 = Entry(AppWindow, width=5)
       AgeBox4.insert(0, "")
       AgeBox4.place(relx=0.6, rely=0.44)
       ShirtsLabel4 = Label(AppWindow, text = "Shirt size")
       ShirtsLabel4.place(relx=0.74, rely=0.32)
       ShirtBox4 = Entry(AppWindow, width=10)
       ShirtBox4.insert(0, "")
       ShirtBox4.place(relx=0.74, rely=0.36)
       PantsLabel4 = Label(AppWindow, text = "Pant size")
       PantsLabel4.place(relx=0.74, rely=0.4)
       PantsBox4 = Entry(AppWindow, width=10)
       PantsBox4.insert(0, "")
       PantsBox4.place(relx=0.74, rely=0.44)
       ShoeLabel4 = Label(AppWindow, text = "Shoe Size")
       ShoeLabel4.place(relx=0.80, rely=0.32)
       ShoeBox4 = Entry(AppWindow, width=5)
       ShoeBox4.insert(0, "")
       ShoeBox4.place(relx=0.80, rely=0.36)
       GenLabel4 = Label(AppWindow, text = "Gender")
       GenLabel4.place(relx=0.8, rely=.4)
       GenBox4 = Entry(AppWindow, width=10)
       GenBox4.insert(0, "")
       GenBox4.place(relx=0.8, rely=0.44)
       DOBLabel4 = Label(AppWindow, text = "DOB")
       DOBLabel4.place(relx=0.86, rely=0.32)
       DOBBox4 = Entry(AppWindow, width=15)
       DOBBox4.insert(0, "")
       DOBBox4.place(relx=0.86, rely=0.36)

Не могли бы вы показать нам определение ChildFirstBox4 и функцию, которая его определяет?

TheLizzard 30.03.2021 23:06

@TheLizzard только что добавили!

Daniel Lizarraga 30.03.2021 23:24

Вы уверены, что Child4 называется?

TheLizzard 30.03.2021 23:26

@TheLizzard да, я уверен. Перед добавлением виджета прокрутки я просто поместил () метки и поля, и это сработало. Другое дело, если для NumKids набрано 6, я не получаю ошибок при запуске кода. он точно отображает текст без проблем.

Daniel Lizarraga 30.03.2021 23:32
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
20
0

Другие вопросы по теме