Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / html / python / ref / assert.html
CommitLineData
920dae64
AT
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3<head>
4<link rel="STYLESHEET" href="ref.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="ref.html" title='Python Reference Manual' />
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="next" href="assignment.html" />
13<link rel="prev" href="exprstmts.html" />
14<link rel="parent" href="simple.html" />
15<link rel="next" href="assignment.html" />
16<meta name='aesop' content='information' />
17<title>6.2 Assert statements </title>
18</head>
19<body>
20<DIV CLASS="navigation">
21<div id='top-navigation-panel' xml:id='top-navigation-panel'>
22<table align="center" width="100%" cellpadding="0" cellspacing="2">
23<tr>
24<td class='online-navigation'><a rel="prev" title="6.1 Expression statements"
25 href="exprstmts.html"><img src='../icons/previous.png'
26 border='0' height='32' alt='Previous Page' width='32' /></A></td>
27<td class='online-navigation'><a rel="parent" title="6. Simple statements"
28 href="simple.html"><img src='../icons/up.png'
29 border='0' height='32' alt='Up One Level' width='32' /></A></td>
30<td class='online-navigation'><a rel="next" title="6.3 Assignment statements"
31 href="assignment.html"><img src='../icons/next.png'
32 border='0' height='32' alt='Next Page' width='32' /></A></td>
33<td align="center" width="100%">Python Reference Manual</td>
34<td class='online-navigation'><a rel="contents" title="Table of Contents"
35 href="contents.html"><img src='../icons/contents.png'
36 border='0' height='32' alt='Contents' width='32' /></A></td>
37<td class='online-navigation'><img src='../icons/blank.png'
38 border='0' height='32' alt='' width='32' /></td>
39<td class='online-navigation'><a rel="index" title="Index"
40 href="genindex.html"><img src='../icons/index.png'
41 border='0' height='32' alt='Index' width='32' /></A></td>
42</tr></table>
43<div class='online-navigation'>
44<b class="navlabel">Previous:</b>
45<a class="sectref" rel="prev" href="exprstmts.html">6.1 Expression statements</A>
46<b class="navlabel">Up:</b>
47<a class="sectref" rel="parent" href="simple.html">6. Simple statements</A>
48<b class="navlabel">Next:</b>
49<a class="sectref" rel="next" href="assignment.html">6.3 Assignment statements</A>
50</div>
51<hr /></div>
52</DIV>
53<!--End of Navigation Panel-->
54
55<H1><A NAME="SECTION008200000000000000000"></A><A NAME="assert"></A>
56<BR>
576.2 Assert statements
58</H1>
59
60<P>
61Assert statements<a id='l2h-461' xml:id='l2h-461'></a> are a convenient way to insert
62debugging assertions<a id='l2h-462' xml:id='l2h-462'></a> into a program:
63
64<P>
65<dl><dd class="grammar">
66<div class="productions">
67<table>
68<tr>
69 <td><a id='tok-assert_stmt' xml:id='tok-assert_stmt'>assert_stmt</a></td>
70 <td>::=</td>
71 <td>"assert" <a class='grammartoken' href="Booleans.html#tok-expression">expression</a> ["," <a class='grammartoken' href="Booleans.html#tok-expression">expression</a>]</td></tr>
72</table>
73</div>
74<a class="grammar-footer"
75 href="grammar.txt" type="text/plain"
76 >Download entire grammar as text.</a>
77</dd></dl>
78
79<P>
80The simple form, "<tt class="samp">assert expression</tt>", is equivalent to
81
82<P>
83<div class="verbatim"><pre>
84if __debug__:
85 if not expression: raise AssertionError
86</pre></div>
87
88<P>
89The extended form, "<tt class="samp">assert expression1, expression2</tt>", is
90equivalent to
91
92<P>
93<div class="verbatim"><pre>
94if __debug__:
95 if not expression1: raise AssertionError, expression2
96</pre></div>
97
98<P>
99These equivalences assume that <code>__debug__</code><a id='l2h-464' xml:id='l2h-464'></a> and
100<tt class="exception">AssertionError</tt><a id='l2h-463' xml:id='l2h-463'></a> refer to the built-in
101variables with those names. In the current implementation, the
102built-in variable <code>__debug__</code> is <code>True</code> under normal
103circumstances, <code>False</code> when optimization is requested (command line
104option -O). The current code generator emits no code for an assert
105statement when optimization is requested at compile time. Note that it
106is unnecessary to include the source code for the expression that failed
107in the error message;
108it will be displayed as part of the stack trace.
109
110<P>
111Assignments to <code>__debug__</code> are illegal. The value for the
112built-in variable is determined when the interpreter starts.
113
114<P>
115
116<DIV CLASS="navigation">
117<div class='online-navigation'>
118<p></p><hr />
119<table align="center" width="100%" cellpadding="0" cellspacing="2">
120<tr>
121<td class='online-navigation'><a rel="prev" title="6.1 Expression statements"
122 href="exprstmts.html"><img src='../icons/previous.png'
123 border='0' height='32' alt='Previous Page' width='32' /></A></td>
124<td class='online-navigation'><a rel="parent" title="6. Simple statements"
125 href="simple.html"><img src='../icons/up.png'
126 border='0' height='32' alt='Up One Level' width='32' /></A></td>
127<td class='online-navigation'><a rel="next" title="6.3 Assignment statements"
128 href="assignment.html"><img src='../icons/next.png'
129 border='0' height='32' alt='Next Page' width='32' /></A></td>
130<td align="center" width="100%">Python Reference Manual</td>
131<td class='online-navigation'><a rel="contents" title="Table of Contents"
132 href="contents.html"><img src='../icons/contents.png'
133 border='0' height='32' alt='Contents' width='32' /></A></td>
134<td class='online-navigation'><img src='../icons/blank.png'
135 border='0' height='32' alt='' width='32' /></td>
136<td class='online-navigation'><a rel="index" title="Index"
137 href="genindex.html"><img src='../icons/index.png'
138 border='0' height='32' alt='Index' width='32' /></A></td>
139</tr></table>
140<div class='online-navigation'>
141<b class="navlabel">Previous:</b>
142<a class="sectref" rel="prev" href="exprstmts.html">6.1 Expression statements</A>
143<b class="navlabel">Up:</b>
144<a class="sectref" rel="parent" href="simple.html">6. Simple statements</A>
145<b class="navlabel">Next:</b>
146<a class="sectref" rel="next" href="assignment.html">6.3 Assignment statements</A>
147</div>
148</div>
149<hr />
150<span class="release-info">Release 2.4.2, documentation updated on 28 September 2005.</span>
151</DIV>
152<!--End of Navigation Panel-->
153<ADDRESS>
154See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
155</ADDRESS>
156</BODY>
157</HTML>