title: Why/how does named vs wildcard import affect parameters?
body: <p>So... I'm tinkering with some basic python/tkinter programs, and translating the code from python 2.x in the book I'm reading, to 3.x to make sure I understand everything.  I was also attempting to write the code with 'proper' named imports instead of wild card import i.e. <code>from tkinter import *</code> but its not working out so well...</p>
  
  <p>What has me baffled at the moment is this: the original code does a wildcard import of tkinter, and seems to be able to 'get away with' not using quotes around parameter variables like <code>sticky=W</code>, while if I do a named import I have to use quotes around the 'W' or I get an error <code>Unresolved reference 'W'</code>.</p>
  
  <p>Example code (wildcard import):</p>
  
  <pre><code>from tkinter import *
  root = Tk()
  
  Label(root, text="Username").grid(row=0, sticky=W)
  Label(root, text="Password").grid(row=1, sticky=W)
  Entry(root).grid(row=0, column=1, sticky=E)
  Entry(root).grid(row=1, column=1, sticky=E)
  Button(root, text="Login").grid(row=2, column=1, sticky=E)
  
  root.mainloop()
  </code></pre>
  
  <p>Named import:</p>
  
  <pre><code>import tkinter as tk
  
  root = tk.Tk()
  
  tk.Label(root, text="Username").grid(row=0, sticky='W')
  tk.Label(root, text="Password").grid(row=1, sticky='W')
  tk.Entry(root).grid(row=0, column=1, sticky='E')
  tk.Entry(root).grid(row=1, column=1, sticky='E')
  tk.Button(root, text="Login").grid(row=2, column=1, sticky='E')
  
  root.mainloop()
  </code></pre>
  
  <p>Both work, but why does python recognize it one way one time, and not the other?</p>