title: A trouble with python 'self' argument in functions
body: <p>This is the code for a simple test:</p>
  
  <pre><code>class ECollector:
      #error msg collector
      #this class should be used as 'global'
      msgs = []
      def addmsg(self,msg):
          self.msgs.append(msg)
      def clear(self):
          self.msgs = []
  
  class test(ECollector):
      dcodes = []
      ECollector
      def new(self):
          ECollector.addmsg("test!")
  </code></pre>
  
  <p>And this is what I ran on the python console
  (BTW, I'm using pyscripter 2.3 and Python 3.12)</p>
  
  <pre><code>&gt;&gt;&gt;a = test()
  &gt;&gt;&gt;a.new()
  </code></pre>
  
  <p>and the following is what I got: </p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;interactive input&gt;", line 1, in &lt;module&gt;
    File "C:\...\test.py", line 14, in new
      ECollector.addmsg("test!")
  TypeError: addmsg() takes exactly 2 positional arguments (1 given)
  </code></pre>
  
  <p>I'm a newbie to python...and I'm rather confused about this whole thing;;;
  I thought the 'self' argument is something you don't need to fill-up when calling a def function.</p>
  
  <p>Please rescue this poor newbie from this troublesome 'phenomenon' by giving him solutions.
  Thank you :)</p>