Python从另一个脚本中的函数导入变量

时间:2019-09-14 10:29:51

标签: python tkinter import

我正在一个项目中,我需要将变量itemLink从一个文件导入到另一个文件。此变量包含一些预定义的字符串,以及一些必须在GUI中输入的字符串。所有代码均可,但是我不知道如何解决此导入问题。任何帮助将不胜感激。

主程序(GUI)

from tkinter import *
import time
import sys
import subprocess



def generate():
    global itemLink
    itemLink = "predefined_text" + itemName.get() + "predefined_tex" + itemSize.get()
    subprocess.Popen("Nastavitve.py 1", shell=True)

def GUI_start():
    window = Tk()
    window.title("Test")

    Label(window, text="Item name").grid(row=0)
    Label(window, text="Size").grid(row=1)

    global itemName
    global itemSize

    itemName = Entry(window)
    itemSize = Entry(window)

    itemName.grid(row=0, column=1)
    itemSize.grid(row=1, column=1)

    button = Button(window, text="Generate link", fg="red",command=generate)
    button.grid(row=0, column=2)


    window.mainloop()


if __name__ == '__main__':
    GUI_start()

第二个程序(存储必要的数据)

from UI import itemLink
keys = {
    "link": itemLink,
    "email": "your acount email",
    "password": "password"
}

def printLink():
    print(itemLink)
    print("end")

if __name__ == '__main__':
    printLink()

2 个答案:

答案 0 :(得分:0)

所以我有两个文件来证明这一点。 test.py(itemLink变量所在的位置)和import_test.py,以显示导入。

这是test.py:

itemLink = 'no values'
print(itemLink)
def generate():
    itemLink = "predefined_text" #+ itemName.get() + "predefined_tex" + itemSize.get()
    #print(itemLink)

    return itemLink

#we mutate the value of itemLink in the main program
itemLink = generate()

这里是import_test.py

from test import itemLink
#Now we just have the modified itemLink value without having to import main function to call in the UI program.
print(itemLink)

这是对import_test.py的调用的图片: enter image description here

这一次我在主函数中调用了generate方法来修改itemLink的值,然后将itemLink传递到下一个文件中。

让我知道这是否是您想要的。

答案 1 :(得分:0)

我刚刚找到了一个解决方案,它可能不是最好的,因此,如果有人有任何建议,请在下面写下。现在,我必须启动“设置”,该设置在单击按钮后将在导入UI时自动打开UI,然后按预期在控制台中打印链接。最好是我希望以其他方式使用它,以便UI可以打开“设置”并在其中存储变量。

设置

from UI import itemName, itemSize

itemLink = "predefined" + itemName.get() + "predefined" + itemSize.get()

print(itemLink)
print("end")

keys = {
    "link": itemLink,
    "email": "your acount email",
    "password": "password"
}

UI

from tkinter import *
import time
import sys
import subprocess

def generate():
    #subprocess.Popen("Nastavitve.py 1", shell=True)
    import Settings
    time.sleep(0.1)

window = Tk()
window.title("SHOP BOT")
window.configure(background="black")

Label(window, text="Item name").grid(row=0)
Label(window, text="Size").grid(row=1)

global itemName
global itemSize

itemName = Entry(window)
itemSize = Entry(window)

itemName.grid(row=0, column=1)
itemSize.grid(row=1, column=1)

button = Button(window, text="Generate link", fg="red",command=generate)
button.grid(row=0, column=2)

window.mainloop()