python - 在python中的对象之间传递数据

标签 python class pass-by-reference

我是 python 的新手,我不确定如何在对象之间传递数据。下面是一个使用 python 和 wxwidgets 的选项卡式程序。由于它们在不同的类中,我如何才能从 GetText 方法访问 maintxt 实例?

谢谢。

........

#!/usr/bin/env python
import wx


class PageText(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.maintxt = wx.TextCtrl(self, style=wx.TE_MULTILINE, pos=(0, 40), size=(850,320))

        self.Show(True)


class PageList(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.bPutText = wx.Button(self, id=-1, label='Put Text', pos=(855, 40), size=(75, 30))
        self.bPutText.Bind(wx.EVT_LEFT_DOWN, self.GetText)


    def GetText(self, event):
        # Write text into maintxt


class MainFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, title="ADMIN")

        p = wx.Panel(self)
        nb = wx.Notebook(p)

        vPageText = PageText(nb)
        vPageList = PageList(nb)

        nb.AddPage(vPageText, "Edit Text")
        nb.AddPage(vPageList, "Book List")

        sizer = wx.BoxSizer()
        sizer.Add(nb, 1, wx.EXPAND)
        p.SetSizer(sizer)

if __name__ == "__main__":
    app = wx.App()
    MainFrame().Show()
    app.MainLoop()

最佳答案

听起来您可能将逻辑与表示混为一谈。您也许应该有一个模型类网络来描述您的域(页面?)的行为,然后将这些类的实例传递给您的表示类的初始化程序,以便它们知道它们代表的是哪些模型。

有关此设计的更多信息:http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller

关于python - 在python中的对象之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3911259/

相关文章:

python - 如何在 Python 中加载网站的所有资源,包括 AJAX 请求等?

python - 对来自不同用户的多个响应进行评分

Python ctypes 和函数指针

css - Wordpress 侧边栏类

python - 如何打印一个可以包含自身的类

python - 无法导入统计模型

C++ 需要使类成员变量能够访问另一个类实例的 std::vector

c++ - 为什么不执行__restrict__修饰符?

c++ - 在循环迭代期间在 vector 中保存对 void 指针的引用

c - 使用指针访问嵌套结构中的数据