我根据用户的GUI条目/选择从执行计算的代码(ui.py
)中分离了我的GUI代码(calcs.py
)。基本上,您输入数字并进行选择,然后点击开始,开始按钮应开始计算并打印出东西。以下是我的代码的相关部分提供的解释:
按下按钮后,方法开始:
import calcs
class Application:
def sendGUIinput(self):
self.entry1 = self.coeff1.get() #get entry 1
self.entry2 = self.coeff2.get() #get entry 2
self.entry3 = self.coeff3.get() #get entry 3
calcs.CreateData(self.entry1, self.entry2) #pass entries 1 and 2 to calcs.py for calculations
请注意,app = Application(root)
calcs.CreateData
进行一些计算,然后调用另一个类进行其他计算:
class CreateData:
def __init__(self, entry1, entry2):
"""some calculations here produce self.someNewVar1 and self.someNewVar2"""
CreateData2(self.someNewVar1, self.someNewVar2)
这就是我遇到此问题的地方。 calcs.CreateData2
从calcs.CreateData
获取2个变量,但它还需要来自entry3
的{{1}}。我不想将所有条目传递到Application.sendGUIinput()
,然后从CreateData
传递到CreateData
。我想要做的是,在CreateData2
中有一个来自ui.py
的条目池,以便在我按下按钮后,calcs.py
中的课程可以正常工作而无需calcs.py
。如果你能帮助我,我将不胜感激。提前谢谢你。
注意:我定义ui.py
喜欢;
calcs.CreateData2
因此它接受除self之外的2个参数,但也需要来自ui.py的entry3
答案 0 :(得分:0)
所以我要说我基本上同意@ Cu3PO42。如果您有大量可能具有任意大小的条目,请使用*args
关键字将其解压缩,然后确保您的类可以处理任意大小的计算。
我认为如果它纯粹是关于尺寸的,那么老实说这是最好的前进方式。
如果需要更多详细信息,您希望汇集数据并存储它,或者我们不确定的其他一些复杂性。您可以使用中间DB
并创建查询DB
的类。根据具体情况,SQL
或NoSQL
最有可能成为您需要的人选。如果您不想深入研究使用多种语言的程序(尽管Python
与SQL
和NoSQL
配合得很好),您可以使用表格文件(csv
) ,标准存储数据格式(json
)或序列化Python对象(pickle
)。所有这些都已内置到Python
。