背景:
私の現在のプログラムは、さまざまなデータ分析および生成モジュールに接続された UI モジュールに基づいています。データは生成、分析され、UI に送信されます。そこでデータを操作し、分析モジュールを介して戻すことができます。これにより、UI が更新されます。ただし、これには、UI モジュールから分析モジュールにデータをインポートし、分析したデータをインターフェイスに戻す必要があります。これにより、変更のたびにプログラムの新しいインスタンスが作成されているように見えますが、これはもちろん私の意図ではありませんでした。これは私が書いた最初のインターフェースで、同時にインポートされる私自身のモジュールのいくつかに依存しています。以前のインターフェースは自己完結型であるか、モジュール間のデータの共有が制限されていました。
質問:
モジュール間で情報を渡す最も効率的な方法は何ですか? また、「フィードバック」ループの作成を回避する最善の方法は何ですか (以下の簡単な例で示します)。
例:
from Tkinter import *
#Example Data_UI module
class Interface_On:
def Interface_Elements(self, master):
self.master=master
self.master.title("'Feedback' Loop")
self.c=Canvas(self.master, width=1000, height=1000, bg='black')
self.c.grid(row=0, rowspan=25, column=0)
drawing_utility_run=Canvas_Draw()
drawing_utility_run.canvas_objects(self.c)
class Canvas_Draw:
def canvas_objects(self, canvas):
global new_x, new_y
self.canvas=canvas
new_x=[]
new_y=[]
from Data_Presets import a
import Data_Generator
Generator_run=Data_Generator.Generator()
Generator_run.generator()
from Data_Generator import coordinates_x, coordinates_y
import Data_Processor
Process_Data=Data_Processor.Data_Processor()
Process_Data.Process_Data()
from Data_Processor import data_set, analysed_set, filtered_set
for i in range(len(data_set)):
self.canvas.create_oval(coordinates_x, coordinates_y, coordinates_x+a, coordinates_y+a, ...)
def move_point:
#interactive objects etc etc
new_x.append(event.x) #etc
root=Tk()
run_it=Interface_On()
run_it.Interface_Elements(root)
root.mainloop()
#Seperate Data Analysis module
class Data_Processor:
def Process_Data(self):
from Data_UI import new_x, new_y #This appears to create the unwanted loop
#Data Analysis etc
#What is the most efficient way to get data from the UI into this module and avoid creating a new instance of the UI?