Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将值传递到不同的类_Python - Fatal编程技术网

Python 将值传递到不同的类

Python 将值传递到不同的类,python,Python,我有一个名为msg.data[2]的数据数组,其中我使用了pubsub,现在我想将此数据传递到PlotCanvasExample类中 这是我叫这个班的地方 self.pubsubText.SetLabel("This is the Contact Map for the chain "+msg.data[0]+" in the PDB file "+msg.data[1]) frame = self.GetParent() sizer = wx.BoxSizer(wx.VERTI

我有一个名为msg.data[2]的数据数组,其中我使用了pubsub,现在我想将此数据传递到PlotCanvasExample类中

这是我叫这个班的地方

self.pubsubText.SetLabel("This is the Contact Map for the chain "+msg.data[0]+" in the PDB file "+msg.data[1])
    frame = self.GetParent()
    sizer = wx.BoxSizer(wx.VERTICAL)
    self.canvas = PlotCanvasExample(self,0, size=(100,100))
    sizer.Add(self.canvas,1,wx.EXPAND,0)
这是课程本身

class PlotCanvasExample(plot.PlotCanvas):
    def __init__(self,parent,id,size):
            plot.PlotCanvas.__init__(self,parent,id,style=wx.BORDER_NONE, size=(300,200))
            self.data = [(1,2),(23,2)]
            line = plot.PolyMarker(self.data)
            gc = plot.PlotGraphics([line],"CM view", "x-axis","y axis")
            self.Draw(gc, xAxis=(0,50), yAxis=(0,50))
如何将变量msg.data传入此类


我是python新手,所以解释一下如何操作会很好,这样我就可以理解下次如何操作了

您可以将setData方法添加到PlotCanvasExample类中,并可能使用此方法

def setData(data):
    self.data = data
或者,如果在创建对象时需要此参数,可以将此参数添加到PlotCanvasExample的init方法中

class PlotCanvasExample(plot.PlotCanvas):
    def __init__(self,parent,id,size, data):  
请尝试此代码

self.pubsubText.SetLabel("This is the Contact Map for the chain "+msg.data[0]+" in the PDB file "+msg.data[1])
    frame = self.GetParent()
    sizer = wx.BoxSizer(wx.VERTICAL)
    self.canvas = PlotCanvasExample(self,0, size=(100,100), msg.data)
    sizer.Add(self.canvas,1,wx.EXPAND,0)

class PlotCanvasExample(plot.PlotCanvas):
    def __init__(self,parent,id,size, msgdata):
            self.msgdata = msgdata
            plot.PlotCanvas.__init__(self,parent,id,style=wx.BORDER_NONE, size=(300,200))
            self.data = [(1,2),(23,2)]
            line = plot.PolyMarker(self.data)
            gc = plot.PlotGraphics([line],"CM view", "x-axis","y axis")
            self.Draw(gc, xAxis=(0,50), yAxis=(0,50))
希望这有帮助


Andrew

需要传递给类的参数应该放在
\uuuu init\uuu
函数中

下面是关于

代码行
def\uuu init\uuu(self、parent、id、size):
是您需要更改以添加新参数的行

下次创建此类时,可以在
self.canvas-PlotCanvasExample()中分配它

例如:

类别:

class PlotCanvasExample(plot.PlotCanvas):
    def __init__(self,parent,id,size,data):
代码:

如果您是Python新手,我建议您浏览一下文档。另外,当在这里发布代码时,也可以看看它

:)

class PlotCanvasExample(plot.PlotCanvas):
    def __init__(self,parent,id,size,data):
self.canvas = PlotCanvasExample(self,0, size=(100,100), msg.data[2])