我想知道,在基于GUI的应用程序中信息流的概念是什么,或者任何其他有相同问题的应用程序。当您有两个独立的类及其对象时,它们之间的划分过程是如何完成的。例如,您有一个GUI和AppLogic。
场景1:按下按钮-> GUI正在处理事件->调用AppLogic方法image_clicked()
场景2: HTTPServer获取消息-> AppLogic接收图像-> AppLogic调用GUI方法render_image()

问题是您不能相互引用类,因为第一个类不知道第二个类(这里AppLogic不知道GUI类):
class AppLogic():
gui : GUI
def image_clicked(self):
pass #not important
class GUI():
app_logic : AppLogic
def render_image(self):
pass #not important我知道这更像是上学和学习的问题,但我想知道这些问题是如何解决的,或者一些常见的做法。至少链接到一些详细的信息。我不能说出问题的正确答案。
编辑:
我可以使用这段代码,而不需要显式类型声明,而且它可以工作。但是,当我想在AppLogic类定义中调用gui的函数时,intellisense没有提示任何内容,因为它不知道属性gui的类型。我不认为使用这样的代码是很好的做法。
class AppLogic():
def __init__(self) -> None:
self.gui = None
def image_clicked(self):
pass #not important
class GUI():
def __init__(self) -> None:
self.app_logic = None
def render_image(self):
pass #not important
app = AppLogic()
gui = GUI()
app.gui = gui
gui.app_logic = app发布于 2022-11-15 18:10:12
你需要初始化你的变量。
gui = Gui()然后您可以调用这些方法
例如:
class AppLogic:
gui: Gui
def image_clicked(self):
gui = Gui()
gui.render_image()
class Gui:
logic: AppLogic
def render_image(self) :
pass也可以直接初始化变量。
gui: Gui = Gui()我希望这能回答你的问题
发布于 2022-11-15 18:27:26
from LogicClass import Logic
class Gui:
logic: AppLogic = AppLogic()
def render_image(self) :
pass以及:
from GuiClass import Gui
class AppLogic:
gui: Gui
def image_clicked(self):
gui = Gui()
gui.render_image()发布于 2022-11-15 18:50:27
from Gui import Gui
class Logic:
def __init__(self):
self.gui = Gui()
if __name__ == "__main__":
Logic()和
class Gui:
def __init__(self):
print("GUI")https://stackoverflow.com/questions/74450198
复制相似问题