0

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を初めて使用するので、その方法の説明があればいいので、次回はその方法を理解できます

4

4 に答える 4

1

PlotCanvasExample クラスに setData メソッドを追加して、このメソッドを使用することはできますか?

def setData(data):
    self.data = data

または、オブジェクトの作成時にこのパラメーターが必要な場合は、このパラメーターを PlotCanvasExample の init メソッドに追加できます。

class PlotCanvasExample(plot.PlotCanvas):
    def __init__(self,parent,id,size, data):  
于 2012-12-28T14:35:10.600 に答える
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))

お役に立てれば。

アンドリュー

于 2012-12-28T14:37:06.090 に答える
0
class P...:
    def __init__(self, parent, id, size, data):
        self.data = data 
        ...
于 2012-12-28T14:35:25.417 に答える
0

クラスに渡す必要がある引数は、__init__関数に配置する必要があります。

クラスに関する 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も見てください。ここにコードを投稿するときに役立ちます。

:)

于 2012-12-28T14:38:07.663 に答える