Имя не определено

используются 2 файла питона из одного импортируются функция но в терминале вывод почему то что имя не определенно хотя функция исправна

инициализация переменной

if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setStyle('Breeze')
    main_win = open_ui_file("form.ui")
    main_win.show()
    win = open_ui_file("dialog.ui")

Почему может писать что имя не определенно

fn = str(win.lineEdit_2.text())
NameError: name 'win' is not defined

Ответы (1 шт):

Автор решения: CrazyElf

А, ну в принципе всё понятно. Вы вообще в курсе, зачем пишется такая проверка?

if __name__ == "__main__":
    ...
    win = open_ui_file("dialog.ui")

Эта проверка работает так, что когда вы запускаете именно этот файл (где находится эта проверка), то этот if сработает. А если вы подключаете файл с этой проверкой как библиотеку, то этот if не работает. Это специально так задумано, чтобы можно было использовать через include функции из тех скриптов, которые могут запускаться и самостоятельно.

У вас ведь этот код в том файле, который вы подключаете через include? Вот этот кусок кода и не работает и у вас нет в результате этой переменной.

Вы лучше вынесите код инициализации окна в отдельную функцию и запускайте эту функцию где вам нужно - в частности в этом if, но и в том файле, в который вы подключаете этот код вы эту функцию тогда тоже сможете запустить и получить там эту переменную.

→ Ссылка