Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / html / python / lib / examples-imp.html
CommitLineData
920dae64
AT
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3<head>
4<link rel="STYLESHEET" href="lib.css" type='text/css' />
5<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
6<link rel='start' href='../index.html' title='Python Documentation Index' />
7<link rel="first" href="lib.html" title='Python Library Reference' />
8<link rel='contents' href='contents.html' title="Contents" />
9<link rel='index' href='genindex.html' title='Index' />
10<link rel='last' href='about.html' title='About this document...' />
11<link rel='help' href='about.html' title='About this document...' />
12<link rel="prev" href="module-imp.html" />
13<link rel="parent" href="module-imp.html" />
14<link rel="next" href="module-zipimport.html" />
15<meta name='aesop' content='information' />
16<title>3.21.1 Examples</title>
17</head>
18<body>
19<DIV CLASS="navigation">
20<div id='top-navigation-panel' xml:id='top-navigation-panel'>
21<table align="center" width="100%" cellpadding="0" cellspacing="2">
22<tr>
23<td class='online-navigation'><a rel="prev" title="3.21 imp "
24 href="module-imp.html"><img src='../icons/previous.png'
25 border='0' height='32' alt='Previous Page' width='32' /></A></td>
26<td class='online-navigation'><a rel="parent" title="3.21 imp "
27 href="module-imp.html"><img src='../icons/up.png'
28 border='0' height='32' alt='Up One Level' width='32' /></A></td>
29<td class='online-navigation'><a rel="next" title="3.22 zipimport "
30 href="module-zipimport.html"><img src='../icons/next.png'
31 border='0' height='32' alt='Next Page' width='32' /></A></td>
32<td align="center" width="100%">Python Library Reference</td>
33<td class='online-navigation'><a rel="contents" title="Table of Contents"
34 href="contents.html"><img src='../icons/contents.png'
35 border='0' height='32' alt='Contents' width='32' /></A></td>
36<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
37 border='0' height='32' alt='Module Index' width='32' /></a></td>
38<td class='online-navigation'><a rel="index" title="Index"
39 href="genindex.html"><img src='../icons/index.png'
40 border='0' height='32' alt='Index' width='32' /></A></td>
41</tr></table>
42<div class='online-navigation'>
43<b class="navlabel">Previous:</b>
44<a class="sectref" rel="prev" href="module-imp.html">3.21 imp </A>
45<b class="navlabel">Up:</b>
46<a class="sectref" rel="parent" href="module-imp.html">3.21 imp </A>
47<b class="navlabel">Next:</b>
48<a class="sectref" rel="next" href="module-zipimport.html">3.22 zipimport </A>
49</div>
50<hr /></div>
51</DIV>
52<!--End of Navigation Panel-->
53
54<H2><A NAME="SECTION0052110000000000000000"></A>
55<A NAME="examples-imp"></A>
56<BR>
573.21.1 Examples
58</H2>
59
60<P>
61The following function emulates what was the standard import statement
62up to Python 1.4 (no hierarchical module names). (This
63<em>implementation</em> wouldn't work in that version, since
64<tt class="function">find_module()</tt> has been extended and
65<tt class="function">load_module()</tt> has been added in 1.4.)
66
67<P>
68<div class="verbatim"><pre>
69import imp
70import sys
71
72def __import__(name, globals=None, locals=None, fromlist=None):
73 # Fast path: see if the module has already been imported.
74 try:
75 return sys.modules[name]
76 except KeyError:
77 pass
78
79 # If any of the following calls raises an exception,
80 # there's a problem we can't handle -- let the caller handle it.
81
82 fp, pathname, description = imp.find_module(name)
83
84 try:
85 return imp.load_module(name, fp, pathname, description)
86 finally:
87 # Since we may exit via an exception, close fp explicitly.
88 if fp:
89 fp.close()
90</pre></div>
91
92<P>
93A more complete example that implements hierarchical module names and
94includes a <tt class="function">reload()</tt><a id='l2h-723' xml:id='l2h-723'></a> function can be
95found in the module <tt class="module">knee</tt><a id='l2h-724' xml:id='l2h-724'></a>. The
96<tt class="module">knee</tt> module can be found in <span class="file">Demo/imputil/</span> in the
97Python source distribution.
98
99<DIV CLASS="navigation">
100<div class='online-navigation'>
101<p></p><hr />
102<table align="center" width="100%" cellpadding="0" cellspacing="2">
103<tr>
104<td class='online-navigation'><a rel="prev" title="3.21 imp "
105 href="module-imp.html"><img src='../icons/previous.png'
106 border='0' height='32' alt='Previous Page' width='32' /></A></td>
107<td class='online-navigation'><a rel="parent" title="3.21 imp "
108 href="module-imp.html"><img src='../icons/up.png'
109 border='0' height='32' alt='Up One Level' width='32' /></A></td>
110<td class='online-navigation'><a rel="next" title="3.22 zipimport "
111 href="module-zipimport.html"><img src='../icons/next.png'
112 border='0' height='32' alt='Next Page' width='32' /></A></td>
113<td align="center" width="100%">Python Library Reference</td>
114<td class='online-navigation'><a rel="contents" title="Table of Contents"
115 href="contents.html"><img src='../icons/contents.png'
116 border='0' height='32' alt='Contents' width='32' /></A></td>
117<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
118 border='0' height='32' alt='Module Index' width='32' /></a></td>
119<td class='online-navigation'><a rel="index" title="Index"
120 href="genindex.html"><img src='../icons/index.png'
121 border='0' height='32' alt='Index' width='32' /></A></td>
122</tr></table>
123<div class='online-navigation'>
124<b class="navlabel">Previous:</b>
125<a class="sectref" rel="prev" href="module-imp.html">3.21 imp </A>
126<b class="navlabel">Up:</b>
127<a class="sectref" rel="parent" href="module-imp.html">3.21 imp </A>
128<b class="navlabel">Next:</b>
129<a class="sectref" rel="next" href="module-zipimport.html">3.22 zipimport </A>
130</div>
131</div>
132<hr />
133<span class="release-info">Release 2.4.2, documentation updated on 28 September 2005.</span>
134</DIV>
135<!--End of Navigation Panel-->
136<ADDRESS>
137See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
138</ADDRESS>
139</BODY>
140</HTML>