title: How to call function from other class with self?
body: <p>One post right before mine, I found some Code I would like to use. There is an ComboPopup which has checkboxes in it. If one of These checkboxes is activated, I want to pass the selected text back to my class (i.e. <code>MyForm</code>). There is an StaticText called <code>self.text</code>. I want to Change the Label with the choosen Text of the ComboPopup.</p>
  
  <p>I tried it with:</p>
  
  <pre><code>    test = MyForm()
      MyForm.OnUpdate(test,item.GetText())
  </code></pre>
  
  <p>as I thought that <code>self.text</code> is parent from <code>MyForm()</code>. But that doesn't work. No errors, but also no changes of the text.</p>
  
  <p>What is <code>self</code> in this case? Is there a good way to find out what <code>self</code> is ? Like print the Name or anything :-)</p>
  
  <p>My Code:</p>
  
  <pre><code>import wx
  import wx.stc
  from wx.lib.mixins.listctrl import CheckListCtrlMixin, ListCtrlAutoWidthMixin
  
  class CheckListCtrl(wx.ListCtrl, CheckListCtrlMixin, ListCtrlAutoWidthMixin):
  
      def __init__(self, parent):
          wx.ListCtrl.__init__(self, parent, wx.ID_ANY, style=wx.LC_REPORT | 
                  wx.SUNKEN_BORDER)
          CheckListCtrlMixin.__init__(self)
          ListCtrlAutoWidthMixin.__init__(self)
          self.SetSize(-1, -1, -1, 50)
  
      def OnCheckItem(self, index, flag):
          item = self.GetItem(index)
          if flag:
              what = "checked"
          else:
              what = "unchecked"
          print(f'{item.GetText()} - {what}')
  
          test = MyForm()
          MyForm.OnUpdate(test,item.GetText())
  
  
  class ListViewComboPopup(wx.ComboPopup):
  
      def __init__(self):
          wx.ComboPopup.__init__(self)
          self.lc = None
      def AddItem(self, txt):
          self.lc.InsertItem(0, txt)
      def Init(self):
          self.value = -1
          self.curitem = -1
      def Create(self, parent):
          self.lc = CheckListCtrl(parent)
          self.lc.InsertColumn(0, '', width=90)
          return True
      def GetControl(self):
          return self.lc
      def OnPopup(self):
          wx.ComboPopup.OnPopup(self)
      def GetAdjustedSize(self, minWidth, prefHeight, maxHeight):
          return wx.ComboPopup.GetAdjustedSize(
              self, minWidth, 110, maxHeight)
  
  class MyForm(wx.Frame):
  
      def __init__(self):
          wx.Frame.__init__(self, None, title="Popup Menu")
          self.panel = wx.Panel(self)
  
          vsizer = wx.BoxSizer(wx.VERTICAL)
  
          comboCtrl = wx.ComboCtrl(self.panel, wx.ID_ANY, "Select Text")    
          popupCtrl = ListViewComboPopup()
          comboCtrl.SetPopupControl(popupCtrl)
  
          popupCtrl.AddItem("Text One")
  
          self.txt = wx.StaticText(self.panel,-1,style = wx.ALIGN_LEFT)
          self.txt.SetLabel("Startup Text")
  
          vsizer.Add(comboCtrl,1,wx.EXPAND)
          vsizer.Add(self.txt,1,wx.EXPAND)
  
          self.panel.SetSizer(vsizer)
  
      def OnUpdate(self, txt):
          self.txt.SetLabel(txt) 
  
  if __name__ == "__main__":
      app = wx.App(False)
      frame = MyForm().Show()
      app.MainLoop()
  </code></pre>