title: How to use self parameter, @staticmethod keyword inside a class and its methods
body: <p>I have a python class which has multiple methods. I have defined my methods via <code>@staticmethod</code> instance and I want to call other methods of my class from inside my main function(<code>main_function</code>). I think I need <code>self</code> parameter for calling my other functions from my main function and I want to pass this parameter to my <code>main_function</code> when I create an instance of my class. </p>
  
  <pre><code>class myclass:
    @staticmethod
    def function1(param1)
        print "function1"
    @staticmethod
    def main_function(self, param1)
       function1(param1)
  
  my_object = myclass()
  my_object.main_function(param1)
  </code></pre>
  
  <p>I got this error:</p>
  
  <pre><code>TypeError: main_function() takes exactly 2 arguments (1 given)
  </code></pre>
  
  <p>The problem is that I have not <code>self</code> parameter when I create my instance. I tried to remove <code>@staticmethod</code> keyword from my method definition and remove all <code>self</code> parameter using, but this does not work.</p>