社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Jan • 5 年前 • 1639 次点击  

我正在做一个项目,我需要从一个文件导入变量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()
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50325
 
1639 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Jan
Reply   •   1 楼
Jan    5 年前

我刚刚发现一个解决方案,它可能不是最好的,所以如果有人有任何建议,请写在下面。现在,我必须启动设置,在单击按钮后,当它导入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"
}

用户界面

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()
Richard K Yu
Reply   •   2 楼
Richard K Yu    5 年前

所以我有两份文件来证明这一点。test.py,itemLink变量所在的位置,并导入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传递到下一个文件中。

告诉我这是不是你要找的。