Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.11.2021
Сообщений: 21

Как передавать значения переменной в другой модуль без запуска первого?

28.12.2025, 21:11. Показов 440. Ответов 3

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#main.py
from PyQt5 import QtCore, QtGui, QtWidgets
from loginform import Ui_MainWindow
import sys
import pickle
import os.path
import subprocess
 
alt = 12
class mywindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
 
        proverka = os.path.exists('user_data.txt')
 
        #Функции
        def on_click_login ():
            if proverka == True : #Проверка на регистрацию
                global loginP, passwordP,login,password
                login = self.ui.lineEdit.text()
                password = self.ui.lineEdit_2.text()
                if login == loginP and password == passwordP : #Проверка на правильность данных
                    print('Данные верны !')
                    subprocess.call(['python', 'main_form.py'])
                else:
                    print('Данные не верны')
            else : 
                print('Вы не зарегистрированны !')
 
        def on_click_register ():
            func_to_create_file_data()
        
        def func_to_create_file_data():
            global login,password
            login = self.ui.lineEdit.text()
            password = self.ui.lineEdit_2.text()
            user_data = {'Логин': login, 'Пароль': password}
            file1 = open('user_data.txt', 'wb')
            pickle.dump(user_data,file1)
        
        def func_to_read_file_data ():
            try:
                global data_to_load,loginP,passwordP
                file1 = open('user_data.txt', 'rb')
                data_to_load = pickle.load(file1)
                file1.close()
                loginP = data_to_load['Логин']
                passwordP = data_to_load['Пароль']
            except:
                print('Файл пока не создан')
 
        func_to_read_file_data()
 
        #Реакции
        self.ui.pushButton.clicked.connect(on_click_login)
        self.ui.pushButton_2.clicked.connect(on_click_register)
 
app = QtWidgets.QApplication([])
application = mywindow()
application.show()
 
sys.exit(app.exec())
Это основная программа.
Передаю значение в другой модуль вот так:
Python
1
2
import main 
print(main.alt)
И получается так что, он сперва запускает кож мейн на выполнение и появляется GIU вход, а код print(main.alt) - вообще не выполняется. Знаю команду if __name__ == 'main' :, но неужели ее нужно вставить прямо перед всем кодом main ? Хочу сделать базу данных, чтобы переменные ходили туда сюда, между модулями ...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.12.2025, 21:11
Ответы с готовыми решениями:

Как передавать переменную из одного класса в другой
Есть код, в нем мне надо передать 1. Все из Terrain в Tile и 2. Передать width и height из Terrain....

Как узнать тип аргумента, передаваемый функции неизвестному модулю из dll
Ребята, помогите. В Питоне я полный ноль, но не в программировании. И задумал облегчить себе жизнь...

Как передавать данные с одной страницы в другую?
Есть сайт, в определенной части данного сайта отображаются названия загруженных вордовских файлов,...

3
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
29.12.2025, 21:21
Не мыслите модулями, мыслите классами. Не используйте глобальные переменные. Используйте import. И ответьте на вопрос, что помешает юзеру выполнить python main_form.py самостоятельно, без авторизации.
1
0 / 0 / 0
Регистрация: 30.11.2021
Сообщений: 21
02.01.2026, 21:25  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sqlite3
 
class Database :
    def create_database(self,name):
        try :
            self.sqlite_connection = sqlite3.connect(name)
            self.cursor = self.sqlite_connection.cursor()
            print('База данных создана !')
            self.cursor.close()
        except sqlite3.Error as error :
            print('Не смог подключиться к базе данных !', error)
        finally :
            self.sqlite_connection.close()
            print('Закрыл базу данных')
 
users_data = Database()
users_data.create_database('users.db')
Огромное спасибо за совет, мыслить классами...
Я начал разбираться в них лучше
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
04.01.2026, 18:13
Уже лучше, хотя до нормальности ещё далеко.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.01.2026, 18:13
Помогаю со студенческими работами здесь

Запустить одну и ту же программу на двух компьютерах, чтобы одна другой передавала число 100 раз подряд
Здравствуйте. Мне нужно запустить одну и ту же программу на двух компах, что бы одна другой...

Необходимо собрать проект со всеми библиотеками в одну папку, чтобы можно было его передавать на другие ПК.
Python 3.4, GUI wxPython. Необходимо собрать проект со всеми библиотеками в одну папку, чтобы...

Как передавать значения между окнами
Есть список есть, окно которое должно открываться при нажатии на элемент в окне есть Line Edit ....

Как передавать значения между окнами
Доброго времени суток.Столкнулся с проблемой,есть список по нажатию элемента открывается новое ...

Как правильнее вызывать метод(стоит ли указывать, каким параметрам передавать значения)?
@staticmethod def _create_table( columns: str, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru