A bit of reordering, also show more subheadings in the lang ref index.

This commit is contained in:
Georg Brandl 2007-09-18 07:24:40 +00:00
parent 2b03d45bb9
commit 745e48dffa
2 changed files with 43 additions and 43 deletions

View File

@ -17,7 +17,7 @@ write a Python extension module, and the :ref:`c-api-index` describes the
interfaces available to C/C++ programmers in detail.
.. toctree::
:maxdepth: 2
:maxdepth: 3
introduction.rst
lexical_analysis.rst

View File

@ -66,48 +66,6 @@ statements yielding ``None`` are not written, so that procedure calls do not
cause any output.)
.. _assert:
Assert statements
=================
.. index::
statement: assert
pair: debugging; assertions
Assert statements are a convenient way to insert debugging assertions into a
program:
.. productionlist::
assert_stmt: "assert" `expression` ["," `expression`]
The simple form, ``assert expression``, is equivalent to ::
if __debug__:
if not expression: raise AssertionError
The extended form, ``assert expression1, expression2``, is equivalent to ::
if __debug__:
if not expression1: raise AssertionError, expression2
.. index::
single: __debug__
exception: AssertionError
These equivalences assume that ``__debug__`` and :exc:`AssertionError` refer to
the built-in variables with those names. In the current implementation, the
built-in variable ``__debug__`` is ``True`` under normal circumstances,
``False`` 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.
Assignments to ``__debug__`` are illegal. The value for the built-in variable
is determined when the interpreter starts.
.. _assignment:
Assignment statements
@ -308,6 +266,48 @@ instance variable. For example::
a.x += 1 # writes a.x as 4 leaving A.x as 3
.. _assert:
The :keyword:`assert` statement
===============================
.. index::
statement: assert
pair: debugging; assertions
Assert statements are a convenient way to insert debugging assertions into a
program:
.. productionlist::
assert_stmt: "assert" `expression` ["," `expression`]
The simple form, ``assert expression``, is equivalent to ::
if __debug__:
if not expression: raise AssertionError
The extended form, ``assert expression1, expression2``, is equivalent to ::
if __debug__:
if not expression1: raise AssertionError, expression2
.. index::
single: __debug__
exception: AssertionError
These equivalences assume that ``__debug__`` and :exc:`AssertionError` refer to
the built-in variables with those names. In the current implementation, the
built-in variable ``__debug__`` is ``True`` under normal circumstances,
``False`` 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.
Assignments to ``__debug__`` are illegal. The value for the built-in variable
is determined when the interpreter starts.
.. _pass:
The :keyword:`pass` statement