mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Merged revisions 75365,75394,75402-75403,75418,75459,75484,75592-75596,75600,75602-75607,75610-75613,75616-75617,75623,75627,75640,75647,75696,75795 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r75365 | georg.brandl | 2009-10-11 22:16:16 +0200 (So, 11 Okt 2009) | 1 line Fix broken links found by "make linkcheck". scipy.org seems to be done right now, so I could not verify links going there. ........ r75394 | georg.brandl | 2009-10-13 20:10:59 +0200 (Di, 13 Okt 2009) | 1 line Fix markup. ........ r75402 | georg.brandl | 2009-10-14 17:51:48 +0200 (Mi, 14 Okt 2009) | 1 line #7125: fix typo. ........ r75403 | georg.brandl | 2009-10-14 17:57:46 +0200 (Mi, 14 Okt 2009) | 1 line #7126: os.environ changes *do* take effect in subprocesses started with os.system(). ........ r75418 | georg.brandl | 2009-10-14 20:48:32 +0200 (Mi, 14 Okt 2009) | 1 line #7116: str.join() takes an iterable. ........ r75459 | georg.brandl | 2009-10-17 10:57:43 +0200 (Sa, 17 Okt 2009) | 1 line Fix refleaks in _ctypes PyCSimpleType_New, which fixes the refleak seen in test___all__. ........ r75484 | georg.brandl | 2009-10-18 09:58:12 +0200 (So, 18 Okt 2009) | 1 line Fix missing word. ........ r75592 | georg.brandl | 2009-10-22 09:05:48 +0200 (Do, 22 Okt 2009) | 1 line Fix punctuation. ........ r75593 | georg.brandl | 2009-10-22 09:06:49 +0200 (Do, 22 Okt 2009) | 1 line Revert unintended change. ........ r75594 | georg.brandl | 2009-10-22 09:56:02 +0200 (Do, 22 Okt 2009) | 1 line Fix markup. ........ r75595 | georg.brandl | 2009-10-22 09:56:56 +0200 (Do, 22 Okt 2009) | 1 line Fix duplicate target. ........ r75596 | georg.brandl | 2009-10-22 10:05:04 +0200 (Do, 22 Okt 2009) | 1 line Add a new directive marking up implementation details and start using it. ........ r75600 | georg.brandl | 2009-10-22 13:01:46 +0200 (Do, 22 Okt 2009) | 1 line Make it more robust. ........ r75602 | georg.brandl | 2009-10-22 13:28:06 +0200 (Do, 22 Okt 2009) | 1 line Document new directive. ........ r75603 | georg.brandl | 2009-10-22 13:28:23 +0200 (Do, 22 Okt 2009) | 1 line Allow short form with text as argument. ........ r75604 | georg.brandl | 2009-10-22 13:36:50 +0200 (Do, 22 Okt 2009) | 1 line Fix stylesheet for multi-paragraph impl-details. ........ r75605 | georg.brandl | 2009-10-22 13:48:10 +0200 (Do, 22 Okt 2009) | 1 line Use "impl-detail" directive where applicable. ........ r75606 | georg.brandl | 2009-10-22 17:00:06 +0200 (Do, 22 Okt 2009) | 1 line #6324: membership test tries iteration via __iter__. ........ r75607 | georg.brandl | 2009-10-22 17:04:09 +0200 (Do, 22 Okt 2009) | 1 line #7088: document new functions in signal as Unix-only. ........ r75610 | georg.brandl | 2009-10-22 17:27:24 +0200 (Do, 22 Okt 2009) | 1 line Reorder __slots__ fine print and add a clarification. ........ r75611 | georg.brandl | 2009-10-22 17:42:32 +0200 (Do, 22 Okt 2009) | 1 line #7035: improve docs of the various <method>_errors() functions, and give them docstrings. ........ r75612 | georg.brandl | 2009-10-22 17:52:15 +0200 (Do, 22 Okt 2009) | 1 line #7156: document curses as Unix-only. ........ r75613 | georg.brandl | 2009-10-22 17:54:35 +0200 (Do, 22 Okt 2009) | 1 line #6977: getopt does not support optional option arguments. ........ r75616 | georg.brandl | 2009-10-22 18:17:05 +0200 (Do, 22 Okt 2009) | 1 line Add proper references. ........ r75617 | georg.brandl | 2009-10-22 18:20:55 +0200 (Do, 22 Okt 2009) | 1 line Make printout margin important. ........ r75623 | georg.brandl | 2009-10-23 10:14:44 +0200 (Fr, 23 Okt 2009) | 1 line #7188: fix optionxform() docs. ........ r75627 | fred.drake | 2009-10-23 15:04:51 +0200 (Fr, 23 Okt 2009) | 2 lines add further note about what's passed to optionxform ........ r75640 | neil.schemenauer | 2009-10-23 21:58:17 +0200 (Fr, 23 Okt 2009) | 2 lines Improve some docstrings in the 'warnings' module. ........ r75647 | georg.brandl | 2009-10-24 12:04:19 +0200 (Sa, 24 Okt 2009) | 1 line Fix markup. ........ r75696 | georg.brandl | 2009-10-25 21:25:43 +0100 (So, 25 Okt 2009) | 1 line Fix a demo. ........ r75795 | georg.brandl | 2009-10-27 16:10:22 +0100 (Di, 27 Okt 2009) | 1 line Fix a strange mis-edit. ........
This commit is contained in:
parent
facabe2462
commit
495f7b5adb
50 changed files with 370 additions and 233 deletions
|
@ -59,13 +59,16 @@ Objects are never explicitly destroyed; however, when they become unreachable
|
|||
they may be garbage-collected. An implementation is allowed to postpone garbage
|
||||
collection or omit it altogether --- it is a matter of implementation quality
|
||||
how garbage collection is implemented, as long as no objects are collected that
|
||||
are still reachable. (Implementation note: CPython currently uses a
|
||||
reference-counting scheme with (optional) delayed detection of cyclically linked
|
||||
garbage, which collects most objects as soon as they become unreachable, but is
|
||||
not guaranteed to collect garbage containing circular references. See the
|
||||
documentation of the :mod:`gc` module for information on controlling the
|
||||
collection of cyclic garbage. Other implementations act differently and CPython
|
||||
may change.)
|
||||
are still reachable.
|
||||
|
||||
.. impl-detail::
|
||||
|
||||
CPython currently uses a reference-counting scheme with (optional) delayed
|
||||
detection of cyclically linked garbage, which collects most objects as soon
|
||||
as they become unreachable, but is not guaranteed to collect garbage
|
||||
containing circular references. See the documentation of the :mod:`gc`
|
||||
module for information on controlling the collection of cyclic garbage.
|
||||
Other implementations act differently and CPython may change.
|
||||
|
||||
Note that the use of the implementation's tracing or debugging facilities may
|
||||
keep objects alive that would normally be collectable. Also note that catching
|
||||
|
@ -1469,15 +1472,15 @@ Notes on using *__slots__*
|
|||
*__slots__*; otherwise, the class attribute would overwrite the descriptor
|
||||
assignment.
|
||||
|
||||
* The action of a *__slots__* declaration is limited to the class where it is
|
||||
defined. As a result, subclasses will have a *__dict__* unless they also define
|
||||
*__slots__* (which must only contain names of any *additional* slots).
|
||||
|
||||
* If a class defines a slot also defined in a base class, the instance variable
|
||||
defined by the base class slot is inaccessible (except by retrieving its
|
||||
descriptor directly from the base class). This renders the meaning of the
|
||||
program undefined. In the future, a check may be added to prevent this.
|
||||
|
||||
* The action of a *__slots__* declaration is limited to the class where it is
|
||||
defined. As a result, subclasses will have a *__dict__* unless they also define
|
||||
*__slots__*.
|
||||
|
||||
* Nonempty *__slots__* does not work for classes derived from "variable-length"
|
||||
built-in types such as :class:`int`, :class:`str` and :class:`tuple`.
|
||||
|
||||
|
@ -1714,12 +1717,16 @@ implemented as an iteration through a sequence. However, container objects can
|
|||
supply the following special method with a more efficient implementation, which
|
||||
also does not require the object be a sequence.
|
||||
|
||||
|
||||
.. method:: object.__contains__(self, item)
|
||||
|
||||
Called to implement membership test operators. Should return true if *item* is
|
||||
in *self*, false otherwise. For mapping objects, this should consider the keys
|
||||
of the mapping rather than the values or the key-item pairs.
|
||||
Called to implement membership test operators. Should return true if *item*
|
||||
is in *self*, false otherwise. For mapping objects, this should consider the
|
||||
keys of the mapping rather than the values or the key-item pairs.
|
||||
|
||||
For objects that don't define :meth:`__contains__`, the membership test first
|
||||
tries iteration via :meth:`__iter__`, then the old sequence iteration
|
||||
protocol via :meth:`__getitem__`, see :ref:`this section in the language
|
||||
reference <membership-test-details>`.
|
||||
|
||||
|
||||
.. _numeric-types:
|
||||
|
|
|
@ -129,7 +129,7 @@ the built-in module :mod:`builtins`; when in any other module,
|
|||
itself. ``__builtins__`` can be set to a user-created dictionary to create a
|
||||
weak form of restricted execution.
|
||||
|
||||
.. note::
|
||||
.. impl-detail::
|
||||
|
||||
Users should not touch ``__builtins__``; it is strictly an implementation
|
||||
detail. Users wanting to override values in the built-in namespace should
|
||||
|
|
|
@ -639,13 +639,13 @@ slots for which no default value is specified, a :exc:`TypeError` exception is
|
|||
raised. Otherwise, the list of filled slots is used as the argument list for
|
||||
the call.
|
||||
|
||||
.. note::
|
||||
.. impl-detail::
|
||||
|
||||
An implementation may provide built-in functions whose positional parameters do
|
||||
not have names, even if they are 'named' for the purpose of documentation, and
|
||||
which therefore cannot be supplied by keyword. In CPython, this is the case for
|
||||
functions implemented in C that use :cfunc:`PyArg_ParseTuple` to parse their
|
||||
arguments.
|
||||
An implementation may provide built-in functions whose positional parameters
|
||||
do not have names, even if they are 'named' for the purpose of documentation,
|
||||
and which therefore cannot be supplied by keyword. In CPython, this is the
|
||||
case for functions implemented in C that use :cfunc:`PyArg_ParseTuple` to
|
||||
parse their arguments.
|
||||
|
||||
If there are more positional arguments than there are formal parameter slots, a
|
||||
:exc:`TypeError` exception is raised, unless a formal parameter using the syntax
|
||||
|
@ -1053,6 +1053,8 @@ cross-type comparison is not supported, the comparison method returns
|
|||
supported cross-type comparisons and unsupported comparisons. For example,
|
||||
``Decimal(2) == 2`` and `2 == float(2)`` but ``Decimal(2) != float(2)``.
|
||||
|
||||
.. _membership-test-details:
|
||||
|
||||
The operators :keyword:`in` and :keyword:`not in` test for membership. ``x in
|
||||
s`` evaluates to true if *x* is a member of *s*, and false otherwise. ``x not
|
||||
in s`` returns the negation of ``x in s``. All built-in sequences and set types
|
||||
|
@ -1069,7 +1071,12 @@ return ``True``.
|
|||
For user-defined classes which define the :meth:`__contains__` method, ``x in
|
||||
y`` is true if and only if ``y.__contains__(x)`` is true.
|
||||
|
||||
For user-defined classes which do not define :meth:`__contains__` and do define
|
||||
For user-defined classes which do not define :meth:`__contains__` but do define
|
||||
:meth:`__iter__`, ``x in y`` is true if some value ``z`` with ``x == z`` is
|
||||
produced while iterating over ``y``. If an exception is raised during the
|
||||
iteration, it is as if :keyword:`in` raised that exception.
|
||||
|
||||
Lastly, the old-style iteration protocol is tried: if a class defines
|
||||
:meth:`__getitem__`, ``x in y`` is true if and only if there is a non-negative
|
||||
integer index *i* such that ``x == y[i]``, and all lower integer indices do not
|
||||
raise :exc:`IndexError` exception. (If any other exception is raised, it is as
|
||||
|
|
|
@ -236,9 +236,11 @@ Assignment of an object to a single target is recursively defined as follows.
|
|||
from the length of the assigned sequence, thus changing the length of the
|
||||
target sequence, if the object allows it.
|
||||
|
||||
(In the current implementation, the syntax for targets is taken to be the same
|
||||
as for expressions, and invalid syntax is rejected during the code generation
|
||||
phase, causing less detailed error messages.)
|
||||
.. impl-detail::
|
||||
|
||||
In the current implementation, the syntax for targets is taken to be the same
|
||||
as for expressions, and invalid syntax is rejected during the code generation
|
||||
phase, causing less detailed error messages.
|
||||
|
||||
WARNING: Although the definition of assignment implies that overlaps between the
|
||||
left-hand side and the right-hand side are 'safe' (for example ``a, b = b, a``
|
||||
|
@ -937,9 +939,11 @@ Names listed in a :keyword:`global` statement must not be defined as formal
|
|||
parameters or in a :keyword:`for` loop control target, :keyword:`class`
|
||||
definition, function definition, or :keyword:`import` statement.
|
||||
|
||||
(The current implementation does not enforce the latter two restrictions, but
|
||||
programs should not abuse this freedom, as future implementations may enforce
|
||||
them or silently change the meaning of the program.)
|
||||
.. impl-detail::
|
||||
|
||||
The current implementation does not enforce the latter two restrictions, but
|
||||
programs should not abuse this freedom, as future implementations may enforce
|
||||
them or silently change the meaning of the program.
|
||||
|
||||
.. index::
|
||||
builtin: exec
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue