在两个wxpython选项卡之间共享变量
我问过这个问题,但没有很好的表述 作为python和GUI编程的新手 我有一个包含许多python文件的大型项目。文件a.py定义了一个名为fobject的类,我正在使用python 2.5 文件b.py和c.py具有名为BProject和CProject的类,这些类的参数为fobject对象。这些是基于wx python的程序中的页面 我已经在b.py中包括了使用import CProject(在c.py中定义)。我在CProject中有一个列表,我使用wx python GUI填充它。接下来,我调用BProject中定义的函数BRun,它在内部调用CProject中的CRun函数,即c.py中的CRun函数 在这个CRun中,我想操纵列表,但此时列表总是空的。为什么会这样 考虑到约束条件,我应该做什么?我不能更改定义了fobject的a.py中的任何内容 文件:c.py在两个wxpython选项卡之间共享变量,python,oop,wxpython,Python,Oop,Wxpython,我问过这个问题,但没有很好的表述 作为python和GUI编程的新手 我有一个包含许多python文件的大型项目。文件a.py定义了一个名为fobject的类,我正在使用python 2.5 文件b.py和c.py具有名为BProject和CProject的类,这些类的参数为fobject对象。这些是基于wx python的程序中的页面 我已经在b.py中包括了使用import CProject(在c.py中定义)。我在CProject中有一个列表,我使用wx python GUI填充它。接下
def Instance(fObject):
return test_page_CProject(fObject)
class CProject(object):
def __init__(self, fObject):
self.fObj = fObject
self.IntList = []
##snip
def OnIntSelectBtnPress(self,parent):
print ":self.IntList"
print self.IntList
self.listBoxIntSelect.InsertItems(self.IntList,0)
print self.IntList
def OnIntRun(self):
IntLModeList = self.IntListIntMode
#snip
def Instance(fObject):
return BProject(fObject)
class BProject(object):
def __init__(self, fObject):
self.FObj = fObject
#snip
Object = __import__('CProject')
#snip
self.intObject = Object.Instance(self.FObj)
self.intObject.OnIntRun()
文件b.py
def Instance(fObject):
return test_page_CProject(fObject)
class CProject(object):
def __init__(self, fObject):
self.fObj = fObject
self.IntList = []
##snip
def OnIntSelectBtnPress(self,parent):
print ":self.IntList"
print self.IntList
self.listBoxIntSelect.InsertItems(self.IntList,0)
print self.IntList
def OnIntRun(self):
IntLModeList = self.IntListIntMode
#snip
def Instance(fObject):
return BProject(fObject)
class BProject(object):
def __init__(self, fObject):
self.FObj = fObject
#snip
Object = __import__('CProject')
#snip
self.intObject = Object.Instance(self.FObj)
self.intObject.OnIntRun()
当调用CPython.OnIntRun时,self.IntList是空的,但它不应该是我不太明白这一点,但通常在实例化类时需要传入数据。否则,您可以使用PubSub在类之间传递信息,或者您可以创建一个简单的本地web服务器,每个选项卡定期检查新数据并自行更新。我不是很了解这一点,但通常在实例化类时需要传递数据。否则,您可以使用PubSub在类之间传递信息,或者您可以创建一个简单的本地web服务器,每个选项卡定期检查新数据并自行更新。如果您的fObject维护对bProject和cProject的引用,您不能在您的fObject中编写一个
发送到c(msg)
函数吗,您可以从bProject中调用(反之亦然) 如果您的fObject维护对bProject和cProject的引用,您能否在fObject中编写一个可以从bProject调用的send_to_c(msg)
函数 我相信创建一个Web服务器对于这个应用程序来说是一个致命的打击。此应用程序需要在许多PC上单独安装,即使没有网络访问,也需要在客户端安装,以执行我们的h/w。此应用程序与我们的板交互。您可以使用Python的套接字模块SimpleHTTPServer或SimpleXMLRPCServer在内存中创建服务器。我不是说加载apache或类似的东西,我相信创建一个Web服务器对这个应用程序来说是一个致命的打击。此应用程序需要在许多PC上单独安装,即使没有网络访问,也需要在客户端安装,以执行我们的h/w。此应用程序与我们的板交互。您可以使用Python的套接字模块SimpleHTTPServer或SimpleXMLRPCServer在内存中创建服务器。我不是说加载apache或类似的东西。不幸的是,由于fObject是在a.py中定义的,并且在许多平台上是通用的,因此我无法修改它。因此,创建一个类gObject(fObject)
(继承自fObject)并将您的函数添加到gObject!不幸的是,由于fObject是在a.py中定义的,并且对许多平台都是通用的,因此我无法修改它。因此,请创建一个类gObject(fObject)
(继承自fObject)并将您的函数添加到gObject!