【问题标题】:Passing variables between two scripts在两个脚本之间传递变量
【发布时间】:2024-10-15 22:00:01
【问题描述】:

所以我是多处理和子处理的新手,我不确定我是否做得对。

我有两个脚本。一个运行主 GUI,并具有运行其他脚本的按钮。我希望我的其他脚本可以读取我的输入框,以便它可以更改图形的轴。现在,我对其进行了简化,以便它可以打印它,这样我就可以看到值是从一开始就被传递的。 当我像这样运行脚本时:

###class_testing.py### (main script)
class Amplifier_Data_Analysis:

    def saving_graph_stuff(self):
        global int_startfreq,int_stopfreq,float_steps,float_add_tick

        STARTFREQUENCY = self.Start_Freq.get()
        int_startfreq  = int(STARTFREQUENCY)
        STOPFREQUENCY  = self.Stop_Freq.get()
        int_stopfreq   = int(STOPFREQUENCY)
        STEPS          = self.Steps.get()
        float_steps    = float(STEPS)
        ADD_TICK       = self.Add_Tick.get()
        float_add_tick = float(ADD_TICK)

        print(int_startfreq,int_stopfreq,float_steps,float_add_tick)
        return int_startfreq,int_stopfreq,float_steps,float_add_tick


    def testreport(self):
        subprocess.Popen([sys.executable,'test.py'])


###test.py###
from class_testing import *

int_startfreq,int_stopfreq,float_steps,float_add_tick = Amplifier_Data_Analysis.saving_graph_stuff()

print(startfrequency)
print(stopfrequency)

我明白了

int_startfreq,int_stopfreq,float_steps,float_add_tick = Amplifier_Data_Analysis.saving_graph_stuff()
TypeError: saving_graph_stuff() missing 1 required positional argument: 'self'

但是当我输入 self 时,它说它没有定义这是有道理的,因为它是一个与主脚本不同的脚本。 GUI 是从 PAGE 应用程序生成的,因此非常冗长,但它看起来是这样的:GUI

如何在两个脚本之间传递或读取变量?

【问题讨论】:

    标签: python user-interface multiprocessing subprocess


    【解决方案1】:

    这是一个类 - 你必须初始化它

    int_startfreq,int_stopfreq,float_steps,float_add_tick = Amplifier_Data_Analysis().saving_graph_stuff()
    

    【讨论】:

    • 这消除了之前的错误。但是,它现在给我“NoneType”对象没有属性“几何”。那是因为在同一个类中,有一个 init 函数,它有这个:'top.geometry("1188x984+ 389+1") ' 以及标题和颜色等其他 GUI 内容。我知道这是 test.py 中的类初始化,因为当我在其中放入一个 int 或字符时,它会引发类型错误。有没有办法初始化它?
    • 什么课?尝试将其发布在另一个问题中