Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #104216 > unrolled thread

importing

Started byTony van der Hoff <tony@vanderhoff.org>
First post2016-03-07 15:54 +0000
Last post2016-03-07 15:54 +0000
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python


Contents

  importing Tony van der Hoff <tony@vanderhoff.org> - 2016-03-07 15:54 +0000

#104216 — importing

FromTony van der Hoff <tony@vanderhoff.org>
Date2016-03-07 15:54 +0000
Subjectimporting
Message-ID<mailman.18.1457366099.10335.python-list@python.org>
I thought I understood this, but apparently not:
Under py3:

1. "import tkinter" imports the whole module into the name space. Any 
access to names therein must be prefixed with the module name.
ie top = tkinter.Tk()
But tkinter.messagebox.showwarning()  errors with "module has no 
attribute 'messagebox'"

2. "from tkinter import *" loads the name space from the module into the 
program name space. No need to prefix the module name onto the attribute 
name. Pollutes the name space, but makes typing easier.
ie top = Tk()
But messagebox.showwarning() still errors.

3. in either of the above cases, if I add "from tkinter import 
messagebox, the attribute resolves correctly.

I imagined that the "*" form implied "load the lot". Evidently, my 
understanding is lacking. Will somebody please put me straight, or give 
me a reference to some definitive documentation?

-- 
Tony van der Hoff        | mailto:tony@vanderhoff.org
Buckinghamshire, England |

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web