title: Creating an instance of a class without defining the __init__ function
body: <p>I am relativly new to python and I was wondering if you could create an instance of a class without defining the <strong>init</strong> explicity. Could I call it something else?</p>
  
  <p>First example - with the <strong>init</strong> method:</p>
  
  <pre><code>class dog:
  def __init__(self,name):
      self.name=name
      print('My name is',name)
  Bob = dog('Bob')
  </code></pre>
  
  <p>Second example - without the <strong>init</strong> method:</p>
  
  <pre><code>class dog:
  def init_instance(self,name):
      self.name = name
      print('My name is',name)
  
  Bob = dog('Bob')
  </code></pre>
  
  <p>In the first example the code works but in the second example I get:</p>
  
  <blockquote>
    <p>TypeError: object() takes no parameters</p>
  </blockquote>
  
  <p>So based on this I assume that one has to <strong>explicitly</strong> call the <strong>init</strong> method. BUT I have seen code where the <strong>init</strong> method has not been used, how come?</p>