我有一个名为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的新手,所以解释如何做到这一点会很好,所以我可以理解下次怎么做
答案 0 :(得分:1)
您可以将setData方法添加到PlotCanvasExample类并使用此方法吗?
def setData(data):
self.data = data
或者如果在对象创建时需要此参数,可以将此参数添加到PlotCanvasExample的init方法。
class PlotCanvasExample(plot.PlotCanvas):
def __init__(self,parent,id,size, data):
答案 1 :(得分:0)
class P...:
def __init__(self, parent, id, size, data):
self.data = data
...
答案 2 :(得分:0)
试试这段代码......
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))
希望这有帮助。
安德鲁
答案 3 :(得分:0)
需要传递给类的参数应该放在__init__
函数中。
以下是Classes
上的Python文档代码行def __init__(self,parent,id,size):
是您需要更改以添加新参数的内容。
下次创建此课程时,您可以在self.canvas - PlotCanvasExample()
示例:
类别:
class PlotCanvasExample(plot.PlotCanvas):
def __init__(self,parent,id,size,data):
代码:
self.canvas = PlotCanvasExample(self,0, size=(100,100), msg.data[2])
如果您是Python的新手,我建议您查看文档。另请查看PEP8在此处发布代码时会有所帮助。
:)