Это проблема объема!Обратите внимание, что когда вы присваиваете OutString
, вы делаете это в функции.Ну, Python думает, что вы хотите новую переменную в этой функции.Но потом, в области действия модуля, после того, как ваш вызов GetString()
закончен, вы пытаетесь напечатать OutString
.Сюрприз!Его не существует.
Это потому, что вы забыли добавить его в глобальную область.Чтобы убедиться, что переменная, которую вы назначаете, назначена глобальной, а не локальной области действия, используйте оператор global
.Вот так:
def OutputText():
# Declare that OutString will be global
global OutString
OutString = InputStrings.get()
...
GetString()
print OutString
# It prints! Twice, actually, because you also printed it from OutputText()