On 12/3/2014 6:02 AM, Chris Angelico wrote:
When importing a module from a subpackage, it's sometimes convenient
to refer to it throughout the code with a one-part name rather than
two. I'm going to use 'os.path' for the examples, but my actual
use-case is a custom package where the package name is, in the
application, quite superfluous.

Throughout the code, I want to refer to "path.split()",
"path.isfile()", etc, without the "os." in front of them. I could do
either of these:

import os.path as path
from os import path

Which one would you recommend? Does it depend on context?

I confirmed that they do the same thing for submodules.
>>> import os.path as pth
>>> from os import path
>>> pth
<module 'ntpath' from 'C:\\Programs\\Python34\\lib\\ntpath.py'>
>>> path
<module 'ntpath' from 'C:\\Programs\\Python34\\lib\\ntpath.py'>
>>> id(pth)
4319096
>>> id(path)
4319096

I and most code I have seen uses "from tkinter import ttk".

An "as" import works only if it's a module in a package, where the
"from" import can also import other objects (you can't go "import
pprint.pprint as pprint"). I'm fairly sure that's an argument... on
one side or another.

"import tkinter.ttk as ttk" makes it clear that ttk is a module rather than, say, a class. That might make things easier for the reader. On the other hand, duplication implies that there might be a real renaming, so having to compare to see that there is not, is extra work.

from idlelib import EditorWindow
import idlelib.EditorWindow as EditorWindow

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to