title: Is it necessary to include __init__ as the first function every time in a class in Python?
body: <p>In Python, I want to know if it is necessary to include <code>__init__</code> as the first method while creating a class, as in the example below:</p>
  
  <pre><code>class ExampleClass: 
  
      def __init__(self, some_message): 
          self.message = some_message 
          print "New Class instance created, with message:" 
          print self.message 
  </code></pre>
  
  <p>Also, why do we use <code>self</code> to call methods?
  Can someone explain the use of "self" in detail?</p>
  
  <p>Also, why do we use <code>pass</code> statement in Python?</p>