Python 如何在另一个py文件中存储用户GUI条目
我已经根据用户的GUI条目/选择将GUI代码(Python 如何在另一个py文件中存储用户GUI条目,python,class,inheritance,button,tkinter,Python,Class,Inheritance,Button,Tkinter,我已经根据用户的GUI条目/选择将GUI代码(ui.py)与进行计算的代码(calcs.py)分离。基本上,你们输入数字并做出选择,然后点击开始按钮,开始按钮应该开始计算并打印出来。以下是我的代码相关部分的说明: 当您按下按钮时,以下方法开始: import calcs class Application: def sendGUIinput(self): self.entry1 = self.coeff1.get() #get entry 1 self
ui.py
)与进行计算的代码(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个变量,但是,它还需要Application.sendGUIinput()中的entry3
。我不想将所有条目传递到CreateData
,然后再从CreateData
传递到CreateData2
。我想做的是,在calcs.py
中有一个ui.py
的条目池,这样在我按下按钮后,calcs.py
中的类就可以在不需要ui.py
的情况下工作。如果你能帮我做这件事,我将不胜感激。先谢谢你
calcs.CreateData2
like
class CreateData2:
def __init__(self, var1, var2):
因此,它接受除self之外的2个参数,但还需要ui.py的entry3,所以我要说,我基本上同意@Cu3PO42。如果有大量的条目可能是任意大小的,那么请使用关键字将其解压缩,然后确保您的类可以处理任意大小的计算 我认为这是最好的方式,如果它纯粹是关于大小
如果需要更详细的信息,您需要将数据汇集并存储,或者需要一些我们不确定的其他复杂性。您可以使用中间的
DB
并创建查询DB
的类SQL
或NoSQL
是您可能需要的最有可能的候选者,具体取决于具体情况。如果您不想深入研究使用多种语言的程序(尽管Python
与SQL
和NoSQL
),您可以使用表格文件(csv
)、标准存储数据格式(json
)或序列化Python对象(pickle
)。所有这些都已内置到Python中。“我不想将所有条目传递到CreateData,然后再从CreateData传递到CreateData2。”但这正是您应该做的。我对@Cu3PO42的问题是:将所有条目传递给我使用的每个类将很容易在这里工作,并使我的代码变得简单,你是对的。但是假设我需要从用户那里获得100或1000个条目,并且希望有不同的类来处理这么多条目的不同组。那么我该如何定义我的类呢?当然,如果我只有一个.py文件,那就很容易了,但是如果我想使用多个.py文件来完成这个任务呢?谢谢你的回复。我对@Scironic的问题:我理解。你能告诉我更多关于我如何安排我的代码,使其易于继承吗?我当前的代码结构看起来复杂/不切实际吗?实际上,对我来说,考虑一个信息池和一些从该信息池中获取特定信息的类是非常简单的。问题是,在Python中如何使用多个.py文件实现这一点。谢谢你的回答。@Deniz,我误解了你的问题,所以删除了我的评论。请看下面的答案。我想我需要做的是,正如您和Cu3PO42所说的,只需将所有变量传递到calcs.py中的单个类上,然后在单独的.py文件中的单个类中定义不同的方法,而不是为不同的计算步骤定义类。因为我只有12个参数,所以进入SQL或尝试创建并运行外部DB只是额外的工作。我感谢你和Cu3PO42的回答。