title: TypeError: __init__() takes 2 positional arguments but 4 were given
body: <p>My code is giving the error as <code>TypeError: __init__() takes 2 positional arguments but 4 were given</code>. tried searching for an extra argument but couldn't get one. </p>
  
  <p>Tried previously answered questions but didn't get any proper solution.</p>
  
  <p>My code is as follows:</p>
  
  <pre><code>from abc import ABCMeta, abstractmethod
  class Book(object, metaclass=ABCMeta):
      def __init__(self,title,author):
          self.title=title
          self.author=author   
      @abstractmethod
      def display(): pass
  
  #Write MyBook class
  class MyBook(Book):
      def __init__(self, price):
          self.price = price
  
      def display():
          print('Title: {}'.format(title))
          print('Author: {}'.format(author))
          print('Price: {}'.format(price))
  
  title=input()
  author=input()
  price=int(input())
  new_novel=MyBook(title,author,price)
  new_novel.display()
  </code></pre>
  
  <p>compiler gives runtime error as follows</p>
  
  <pre><code>Traceback (most recent call last):
    File "Solution.py", line 23, in &lt;module&gt;
      new_novel=MyBook(title,author,price)
  TypeError: __init__() takes 2 positional arguments but 4 were given
  </code></pre>