title: What does calling Tk() actually do?
body: <p>I was brushing up on Tkinter when I looked upon a minimal example from the <a href="http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/minimal-app.html" rel="noreferrer">NMT Tkinter 8.5 Reference</a>.</p>
  
  <pre><code>#!/usr/bin/env python
  import tkinter as tk
  
  class Application(tk.Frame):    
      def __init__(self, master=None):    
          tk.Frame.__init__(self, master)
          self.grid()
          self.createWidgets()
  
      def createWidgets(self):    
          self.quitButton = tk.Button(self, text='Quit',command=self.quit)
          self.quitButton.grid()
  
  app = Application()
  app.master.title('Sample application')
  app.mainloop()
  </code></pre>
  
  <p>It's all well and good, until I notice that the <code>Tk</code> class isn't being initialized. In other online reference material I could find (<a href="https://docs.python.org/3.3/library/tkinter.html?highlight=tkinter#a-simple-hello-world-program" rel="noreferrer">Python's Library Reference</a>, <a href="http://effbot.org/tkinterbook/tkinter-hello-tkinter.htm" rel="noreferrer">effbot.org</a>, <a href="http://www.tkdocs.com/tutorial/firstexample.html" rel="noreferrer">TkDocs</a>), there's usually a call to <code>root = tk.Tk()</code>, from which the rest of the examples are built upon. I also didn't see any sort of reference to the <code>Tk</code> class initialization anywhere on the NMT's reference.</p>
  
  <p>The information I could get regarding the <code>Tk</code> class is also vague, with the Python Reference only listing it as a "toplevel widget ... which usually is the main window of an application". Lastly, if I replace the last lines in the snippet I presented earlier:</p>
  
  <pre><code>root = tk.Tk()
  app = Application(root)
  </code></pre>
  
  <p>The program would run as well as it did before. With all this in mind, what I'm interested in knowing is:</p>
  
  <ul>
  <li>What does calling <code>root = tk.Tk()</code> actually do (as in, what gets initialized) and why can the previous snippet work without it?</li>
  <li>Would I run into any pitfalls or limitations if I don't call <code>Tk()</code> and just built my application around the <code>Frame</code> class? </li>
  </ul>