Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / html / python / lib / atexit-example.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-atexit.html" />
13<link rel="parent" href="module-atexit.html" />
14<link rel="next" href="module-types.html" />
15<meta name='aesop' content='information' />
16<title>3.5.1 atexit Example </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.5 atexit "
24 href="module-atexit.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.5 atexit "
27 href="module-atexit.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.6 types "
30 href="module-types.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-atexit.html">3.5 atexit </A>
45<b class="navlabel">Up:</b>
46<a class="sectref" rel="parent" href="module-atexit.html">3.5 atexit </A>
47<b class="navlabel">Next:</b>
48<a class="sectref" rel="next" href="module-types.html">3.6 types </A>
49</div>
50<hr /></div>
51</DIV>
52<!--End of Navigation Panel-->
53
54<H2><A NAME="SECTION005510000000000000000"></A><A NAME="atexit-example"></A>
55<BR>
563.5.1 <tt class="module">atexit</tt> Example
57</H2>
58
59<P>
60The following simple example demonstrates how a module can initialize
61a counter from a file when it is imported and save the counter's
62updated value automatically when the program terminates without
63relying on the application making an explicit call into this module at
64termination.
65
66<P>
67<div class="verbatim"><pre>
68try:
69 _count = int(open("/tmp/counter").read())
70except IOError:
71 _count = 0
72
73def incrcounter(n):
74 global _count
75 _count = _count + n
76
77def savecounter():
78 open("/tmp/counter", "w").write("%d" % _count)
79
80import atexit
81atexit.register(savecounter)
82</pre></div>
83
84<P>
85Positional and keyword arguments may also be passed to
86<tt class="function">register()</tt> to be passed along to the registered function
87when it is called:
88
89<P>
90<div class="verbatim"><pre>
91def goodbye(name, adjective):
92 print 'Goodbye, %s, it was %s to meet you.' % (name, adjective)
93
94import atexit
95atexit.register(goodbye, 'Donny', 'nice')
96
97# or:
98atexit.register(goodbye, adjective='nice', name='Donny')
99</pre></div>
100
101<DIV CLASS="navigation">
102<div class='online-navigation'>
103<p></p><hr />
104<table align="center" width="100%" cellpadding="0" cellspacing="2">
105<tr>
106<td class='online-navigation'><a rel="prev" title="3.5 atexit "
107 href="module-atexit.html"><img src='../icons/previous.png'
108 border='0' height='32' alt='Previous Page' width='32' /></A></td>
109<td class='online-navigation'><a rel="parent" title="3.5 atexit "
110 href="module-atexit.html"><img src='../icons/up.png'
111 border='0' height='32' alt='Up One Level' width='32' /></A></td>
112<td class='online-navigation'><a rel="next" title="3.6 types "
113 href="module-types.html"><img src='../icons/next.png'
114 border='0' height='32' alt='Next Page' width='32' /></A></td>
115<td align="center" width="100%">Python Library Reference</td>
116<td class='online-navigation'><a rel="contents" title="Table of Contents"
117 href="contents.html"><img src='../icons/contents.png'
118 border='0' height='32' alt='Contents' width='32' /></A></td>
119<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
120 border='0' height='32' alt='Module Index' width='32' /></a></td>
121<td class='online-navigation'><a rel="index" title="Index"
122 href="genindex.html"><img src='../icons/index.png'
123 border='0' height='32' alt='Index' width='32' /></A></td>
124</tr></table>
125<div class='online-navigation'>
126<b class="navlabel">Previous:</b>
127<a class="sectref" rel="prev" href="module-atexit.html">3.5 atexit </A>
128<b class="navlabel">Up:</b>
129<a class="sectref" rel="parent" href="module-atexit.html">3.5 atexit </A>
130<b class="navlabel">Next:</b>
131<a class="sectref" rel="next" href="module-types.html">3.6 types </A>
132</div>
133</div>
134<hr />
135<span class="release-info">Release 2.4.2, documentation updated on 28 September 2005.</span>
136</DIV>
137<!--End of Navigation Panel-->
138<ADDRESS>
139See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
140</ADDRESS>
141</BODY>
142</HTML>