Задать вопрос
  • Почему переменная глобальная, но ее не видно?

    @Neo-archer Автор вопроса
    Сергей Горностаев,
    вот пример из инета очень похоже на мой пример. Тут так и написано:
    Здесь переменная c была объявлена в функции mul() с помощью ключевого слова global. Ее значение умножается на 10 и становится равным 100. В процессе работы программы можно увидеть, что изменение значения внутри функции отражается на глобальном значении переменной.


    c = 10 
     
    def mul():
        global c
        c = c * 10 
        print("Значение в функции:", c)  
    
    mul()  
    print("Значение вне функции:", c)


    А если вызвать функцию в моем примере, то возникает другая ошибка:
    NameError: name 'Length1' is not defined


    def calc():
    global count1
    count1 = float(Length1.get()) * float(Width1.get()) * float(Height1.get())
    result1['text'] = f"{count1 / 1000}"
    result1.pack()
    calc()
    print(count1)
  • Почему переменная глобальная, но ее не видно?

    @Neo-archer Автор вопроса
    Сергей Горностаев, shurshur, Переменную count1 уже пробовал обьявлять перед функцией. Но тогда в нее записывается присваиваемое значение по умолчанию. и когда вывожу принт, то оно и считывается. А нужно чтобы можно было использовать число, высчитываемое функцией.

    Например если сделать так, то принт выведет ноль, а не перемноженные плавающие числа:
    count1 = 0
    
    def calc():
        global count1
        count1 = float(Length1.get()) * float(Width1.get()) * float(Height1.get())
        result1['text'] = f"{count1 / 1000}"
        result1.pack()
    print( count1)


    то есть пытаюсь занести в глобальную переменную результат такой функции, и чет ничего не работает
  • Почему переменная глобальная, но ее не видно?

    @Neo-archer Автор вопроса
    так ведь calc не вызывалась. А просто принтом выведена в терминал. Принт находится извне функции и по идее должен видеть любые глобальные переменные. Возможно я не понял вопрос

    def calc():
        global count1
        count1 = float(Length1.get()) * float(Width1.get()) * float(Height1.get())
        result1['text'] = f"{count1 / 1000}"
        result1.pack()
    print( count1)