擅长:python、mysql、java
<p>我认为你的部分问题是框架需要从<code>wx.App</code>实例内部初始化,然后必须调用<code>MainLoop()</code>(请参见<a href="http://wiki.wxpython.org/Using%20wxPython%20Demo%20Code" rel="nofollow">this tutorial</a>)。注意框架是如何有父级的<code>None</code>)。在</p>
<p>之后,像jdi这样的解决方案就会起作用。但是,如果可以避免的话,我还是不喜欢使用引用。对于一个父对象调用直接子对象的函数,这是可以的,但我个人的规则是,我的类不能看到任何它们不直接拥有的对象(即,不知道子对象的子对象)。在</p>
<p>我非常喜欢<a href="http://wiki.wxpython.org/WxLibPubSub" rel="nofollow">PubSub</a>在不相关的类之间进行通信。与<code>wx.Event</code>对象不同,不需要任何继承关系。与jdi提出的参考解决方案不同,类根本不需要了解彼此的结构。在</p>
<p>归根结底,在您的应用程序中,<code>SetModes</code>实例能否在没有实例的情况下存在于<em>?如果没有,您可以将<code>SetModes</code>'逻辑合并到<code>App</code>中吗?如果是,那么编码<code>SetModes</code>来显式地处理<code>App</code>是糟糕的设计。在</p>
<p>使用<code>PubSub</code>,您可以从<code>SetModes</code>发送请求消息。<code>App</code>看到消息,然后可以发送一个响应消息,<code>SetModes</code>会看到这个消息。完全独立,完全异步。<code>SetModes</code>不需要知道<code>App</code>的任何信息,只需要知道消息格式。在</p>