Python: как изменить тип данных и переопределить переменную из импортированного модуля - PullRequest
0 голосов
/ 30 июня 2018

У меня есть две программы на Python в одной папке с именами main.py и tk_version.py Я импортирую main.py в tk_version.py У меня есть переменная в main.py, которая имеет значение по умолчанию, скажем, 'XYZ' Теперь в tk_version.py я беру значение для переменной от пользователя, использующего графический интерфейс Tkinter.

Так что я хочу, чтобы при выполнении main.py было принято постоянное значение, а при выполнении tk_version.py значение, заданное пользователем, переопределяет значение по умолчанию.

Пример:

main.py

var="default"
def show():
    print(var)
if __name__ == '__main__':
   show()

tk_version.py

from tkinter import *

import main

Main = Tk()

var= StringVar()
def e1chk():
    global var
    var = e1.get()
    main.show()
    return  


e1=Entry(Main,textvariable=var,width=50)

e1.grid(row=0,column=5,sticky=NSEW)

b1=Button(Main,text="Save",command=e1chk)
b1.grid(row=0,column=8,sticky=NSEW) 
Main.mainloop()

ВЫХОД для main.py

>>> 
=============== RESTART: C:/Users/Gupta Niwas/Desktop/main.py ===============
default
>>>

ВЫВОД для tk_version.py (я ввел «abc» в поле ввода)

>>> 
============ RESTART: C:/Users/Gupta Niwas/Desktop/tk_version.py ============
default
>>>

Я хочу, чтобы переменная была StringVar для управления значениями поля ввода.

1 Ответ

0 голосов
/ 30 июня 2018

Просто добавьте main. перед именем вашей переменной.

tk_version.py

from tkinter import *

import main

Main = Tk()

main.var = StringVar()


def e1chk():
    main.var = e1.get()
    main.show()
    return


e1 = Entry(Main, textvariable=main.var, width=50)

e1.grid(row=0, column=5, sticky=NSEW)

b1 = Button(Main, text="Save", command=e1chk)
b1.grid(row=0, column=8, sticky=NSEW)
Main.mainloop()

Выход:

abc
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...