title: Python 2.7 inheritance super() method invocation
body: <p>I do try in Python 2.7 to use inheritance and create a second class that that will use <code>super</code> method in conjunction with <code>@classmethod</code> decorator to initialise the base class. But I am still not able to make it work even after I add the <code>*args</code> and <code>**kwargs</code> parameters to the function that initialise the base class.</p>
  
  <pre><code>import socket
  
  
  class Server(object):
  
      def __init__(self, ip_address, host):
          self.ip_address = ip_address
          self.host = host
  
      @classmethod
      def create_with_host(cls, host, *args, **kwargs):
          ip_address = socket.gethostbyname(host)
          return cls(ip_address, host, *args, **kwargs)
  
  
  class WebServer(Server):
  
      def __init__(self, url):
          super(WebServer, self).create_with_host(url.split('/')[2])
          self.url = url
  
  
  if __name__ == '__main__':
      s1 = Server.create_with_host('www.google.com')
      print(s1.host, s1.ip_address)
      w1 = WebServer('http://app.pluralsight.com')
      print(w1.host, w1.ip_address, w1.url)
  </code></pre>
  
  <p>The error is:</p>
  
  <pre><code>Traceback (most recent call last):
    File "/Users/poc.py", line 26, in &lt;module&gt;
      w1 = WebServer('http://app.pluralsight.com')
    File "/Users/poc.py", line 19, in __init__
      super(WebServer, self).create_with_host(url.split('/')[2])
    File "/Users/poc.py", line 13, in create_with_host
      return cls(ip_address, host, *args, **kwargs)
  TypeError: __init__() takes exactly 2 arguments (3 given)
  </code></pre>