title: TypeError: __init__() takes 2 positional arguments but 3 were given - History and Settings classes should be well implemented?
body: <p>I have one class I need two separate into two classes.</p>
  <pre><code>WIDTH=50
  HEIGHT=10
  
  class History(Frame):
      def __init__(self, parent):
          super().__init__(parent, borderwidth=1)
  
          self.container = Frame(self)
          self.container.pack(side=&quot;top&quot;, fill=&quot;both&quot;, expand=True)
          self.container.grid_rowconfigure(0, weight=0)
          self.container.grid_columnconfigure(0, weight=0)
  
          Label(self.container, fg=&quot;white&quot;,text=&quot;History&quot;, bg='#3780ba', anchor='w', font=(&quot;Calibri&quot;, 12), width=WIDTH).grid(row=0, column=0, sticky=NSEW)
          Label(self.container, fg=&quot;white&quot;,text=&quot;Settings&quot;, bg='#3780ba', anchor='w', font= (&quot;Calibri&quot;, 12) , width=WIDTH ).grid(row=2, column=0, sticky=NSEW)
  
          text_widget = Text(self.container, height=HEIGHT, width=WIDTH).grid(row=1, column=0)
          text_widget = Text(self.container, height=HEIGHT, width=WIDTH).grid(row=3, column=0)
  </code></pre>
  <p>This class is a bit clear. I prefer to separate into two classes. Here is my attempt :</p>
  <pre><code>class History(Frame):
      def __init__(self, parent):
          super().__init__(parent)
  
          self.container = Frame(self)
          self.container.pack(side=&quot;top&quot;, fill=&quot;both&quot;, expand=True)
          self.container.grid_rowconfigure(0, weight=0)
          self.container.grid_columnconfigure(0, weight=0)
  
          Label(self.container, fg=&quot;white&quot;,text=&quot;History&quot;, bg='#3780ba', anchor='w', font=(&quot;Calibri&quot;, 12), width=WIDTH).grid(row=0, column=0, sticky=NSEW)
          Text(self.container, height=HEIGHT, width=WIDTH).grid(row=1, column=0)
  
  
  class Settings(History):
      def __init__(self, parent):
          super().__init__(self, parent)
  
          Label(self.container, fg=&quot;white&quot;, text=&quot;Settings&quot;, bg='#3780ba', anchor='w', font= (&quot;Calibri&quot;, 12) , width=WIDTH ).grid(row=2, column=0, sticky=NSEW)
          Text(self.container, height=HEIGHT, width=WIDTH).grid(row=3, column=0)
  </code></pre>
  <p>With</p>
  <pre><code>    self.history = History(self)
      self.history.grid(row=0, column=1)
  
      self.settings = Settings(self)
      self.parametres.grid(row=1, column=1)
  </code></pre>
  <p>I got the following error :</p>
  <pre><code>Traceback (most recent call last):
    File &quot;test.py&quot;, line 161, in &lt;module&gt;
      root = Game()
    File &quot;test.py&quot;, line 66, in __init__
      self.settings = Settings(self)
    File &quot;tests.py&quot;, line 26, in __init__
      super().__init__(self, parent)
  TypeError: __init__() takes 2 positional arguments but 3 were given
  </code></pre>
  <p>I am confused ... Why my classes History and Settings are not well implemented?</p>