Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / html / python / ref / assert.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="ref.css" type='text/css' />
<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
<link rel='start' href='../index.html' title='Python Documentation Index' />
<link rel="first" href="ref.html" title='Python Reference Manual' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="assignment.html" />
<link rel="prev" href="exprstmts.html" />
<link rel="parent" href="simple.html" />
<link rel="next" href="assignment.html" />
<meta name='aesop' content='information' />
<title>6.2 Assert statements </title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="6.1 Expression statements"
href="exprstmts.html"><img src='../icons/previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="6. Simple statements"
href="simple.html"><img src='../icons/up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="6.3 Assignment statements"
href="assignment.html"><img src='../icons/next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">Python Reference Manual</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='../icons/contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='../icons/blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><a rel="index" title="Index"
href="genindex.html"><img src='../icons/index.png'
border='0' height='32' alt='Index' width='32' /></A></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="exprstmts.html">6.1 Expression statements</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="simple.html">6. Simple statements</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="assignment.html">6.3 Assignment statements</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION008200000000000000000"></A><A NAME="assert"></A>
<BR>
6.2 Assert statements
</H1>
<P>
Assert statements<a id='l2h-461' xml:id='l2h-461'></a> are a convenient way to insert
debugging assertions<a id='l2h-462' xml:id='l2h-462'></a> into a program:
<P>
<dl><dd class="grammar">
<div class="productions">
<table>
<tr>
<td><a id='tok-assert_stmt' xml:id='tok-assert_stmt'>assert_stmt</a></td>
<td>::=</td>
<td>"assert" <a class='grammartoken' href="Booleans.html#tok-expression">expression</a> ["," <a class='grammartoken' href="Booleans.html#tok-expression">expression</a>]</td></tr>
</table>
</div>
<a class="grammar-footer"
href="grammar.txt" type="text/plain"
>Download entire grammar as text.</a>
</dd></dl>
<P>
The simple form, "<tt class="samp">assert expression</tt>", is equivalent to
<P>
<div class="verbatim"><pre>
if __debug__:
if not expression: raise AssertionError
</pre></div>
<P>
The extended form, "<tt class="samp">assert expression1, expression2</tt>", is
equivalent to
<P>
<div class="verbatim"><pre>
if __debug__:
if not expression1: raise AssertionError, expression2
</pre></div>
<P>
These equivalences assume that <code>__debug__</code><a id='l2h-464' xml:id='l2h-464'></a> and
<tt class="exception">AssertionError</tt><a id='l2h-463' xml:id='l2h-463'></a> refer to the built-in
variables with those names. In the current implementation, the
built-in variable <code>__debug__</code> is <code>True</code> under normal
circumstances, <code>False</code> when optimization is requested (command line
option -O). The current code generator emits no code for an assert
statement when optimization is requested at compile time. Note that it
is unnecessary to include the source code for the expression that failed
in the error message;
it will be displayed as part of the stack trace.
<P>
Assignments to <code>__debug__</code> are illegal. The value for the
built-in variable is determined when the interpreter starts.
<P>
<DIV CLASS="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="6.1 Expression statements"
href="exprstmts.html"><img src='../icons/previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="6. Simple statements"
href="simple.html"><img src='../icons/up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="6.3 Assignment statements"
href="assignment.html"><img src='../icons/next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">Python Reference Manual</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='../icons/contents.png'
border='0' height='32' alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='../icons/blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><a rel="index" title="Index"
href="genindex.html"><img src='../icons/index.png'
border='0' height='32' alt='Index' width='32' /></A></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="exprstmts.html">6.1 Expression statements</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="simple.html">6. Simple statements</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="assignment.html">6.3 Assignment statements</A>
</div>
</div>
<hr />
<span class="release-info">Release 2.4.2, documentation updated on 28 September 2005.</span>
</DIV>
<!--End of Navigation Panel-->
<ADDRESS>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</ADDRESS>
</BODY>
</HTML>