Add explicit example on how to import a submodule of a package using

__import__ and getattr().
This commit is contained in:
Guido van Rossum 1998-12-04 15:32:17 +00:00
parent ce0bbd270b
commit 8c2da61811
1 changed files with 15 additions and 0 deletions

View File

@ -44,6 +44,21 @@ using \samp{import spam.ham.eggs}, the top-level package \code{spam}
must be placed in the importing namespace, but when using \samp{from
spam.ham import eggs}, the \code{spam.ham} subpackage must be used to
find the \code{eggs} variable.
As a workaround for this behavior, use \function{getattr()} to extract
the desired components. For example, you could define the following
helper:
\begin{verbatim}
import string
def my_import(name):
mod = __import__(name)
components = string.split(name, '.')
for comp in components[1:]:
mod = getattr(mod, comp)
return mod
\end{verbatim}
\end{funcdesc}
\begin{funcdesc}{abs}{x}