mirror of
https://github.com/python/cpython.git
synced 2025-07-31 07:04:42 +00:00
Add more entries to the glossary.
Written by Jeff Wheeler for GHOP.
This commit is contained in:
parent
b15a8df519
commit
584265b001
21 changed files with 166 additions and 64 deletions
|
@ -185,6 +185,7 @@ docs@python.org), and we'll be glad to correct the problem.
|
|||
* Glyn Webster
|
||||
* Bob Weiner
|
||||
* Eddy Welbourne
|
||||
* Jeff Wheeler
|
||||
* Mats Wichmann
|
||||
* Gerry Wiener
|
||||
* Timothy Wild
|
||||
|
|
|
@ -57,6 +57,10 @@ htmlhelp: build
|
|||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
"build/htmlhelp/pydoc.hhp project file."
|
||||
|
||||
latex: BUILDER = latex
|
||||
latex: build
|
||||
@echo "Build finished; the LaTeX files are in build/latex."
|
||||
|
||||
clean:
|
||||
-rm -rf build/*
|
||||
-rm -rf tools/sphinx
|
||||
|
|
|
@ -48,6 +48,9 @@ Available make targets are:
|
|||
To create the CHM file, you need to run the Microsoft HTML Help Workshop
|
||||
over the generated project (.hhp) file.
|
||||
|
||||
* "latex", which builds LaTeX source files that can be run with "pdflatex"
|
||||
to produce PDF documents.
|
||||
|
||||
A "make update" updates the Subversion checkouts in `tools/`.
|
||||
|
||||
|
||||
|
|
|
@ -15,6 +15,17 @@ Glossary
|
|||
``...``
|
||||
The typical Python prompt of the interactive shell when entering code for
|
||||
an indented code block.
|
||||
|
||||
argument
|
||||
A value passed to a function or method, assigned to a name local to
|
||||
the body. A function or method may have both positional arguments and
|
||||
keyword arguments in its definition. Positional and keyword arguments
|
||||
may be variable-length: ``*`` accepts or passes (if in the function
|
||||
definition or call) several positional arguments in a list, while ``**``
|
||||
does the same for keyword arguments in a dictionary.
|
||||
|
||||
Any expression may be used within the argument list, and the evaluated
|
||||
value is passed to the local variable.
|
||||
|
||||
BDFL
|
||||
Benevolent Dictator For Life, a.k.a. `Guido van Rossum
|
||||
|
@ -57,6 +68,22 @@ Glossary
|
|||
advanced mathematical feature. If you're not aware of a need for them,
|
||||
it's almost certain you can safely ignore them.
|
||||
|
||||
decorator
|
||||
A function returning another function, usually applied as a function
|
||||
transformation using the ``@wrapper`` syntax. Common examples for
|
||||
decorators are :func:`classmethod` and :func:`staticmethod`.
|
||||
|
||||
The decorator syntax is merely syntactic sugar, the following two
|
||||
function definitions are semantically equivalent::
|
||||
|
||||
def f(...):
|
||||
...
|
||||
f = staticmethod(f)
|
||||
|
||||
@staticmethod
|
||||
def f(...):
|
||||
...
|
||||
|
||||
descriptor
|
||||
Any *new-style* object that defines the methods :meth:`__get__`,
|
||||
:meth:`__set__`, or :meth:`__delete__`. When a class attribute is a
|
||||
|
@ -94,10 +121,24 @@ Glossary
|
|||
statements. The technique contrasts with the :term:`LBYL` style that is
|
||||
common in many other languages such as C.
|
||||
|
||||
expression
|
||||
A piece of syntax which can be evaluated to some value. In other words,
|
||||
an expression is an accumulation of expression elements like literals, names,
|
||||
attribute access, operators or function calls that all return a value.
|
||||
In contrast to other languages, not all language constructs are expressions,
|
||||
but there are also :term:`statement`\s that cannot be used as expressions,
|
||||
such as :keyword:`print` or :keyword:`if`. Assignments are also not
|
||||
expressions.
|
||||
|
||||
extension module
|
||||
A module written in C, using Python's C API to interact with the core and
|
||||
with user code.
|
||||
|
||||
|
||||
function
|
||||
A series of statements which returns some value to a caller. It can also
|
||||
be passed zero or more arguments which may be used in the execution of
|
||||
the body. See also :term:`argument` and :term:`method`.
|
||||
|
||||
__future__
|
||||
A pseudo module which programmers can use to enable new language features
|
||||
which are not compatible with the current interpreter. For example, the
|
||||
|
@ -241,6 +282,17 @@ Glossary
|
|||
|
||||
More information can be found in :ref:`typeiter`.
|
||||
|
||||
keyword argument
|
||||
Arguments which are preceded with a ``variable_name=`` in the call.
|
||||
The variable name designates the local name in the function to which the
|
||||
value is assigned. ``**`` is used to accept or pass a dictionary of
|
||||
keyword arguments. See :term:`argument`.
|
||||
|
||||
lambda
|
||||
An anonymous inline function consisting of a single :term:`expression`
|
||||
which is evaluated when the function is called. The syntax to create
|
||||
a lambda function is ``lambda [arguments]: expression``
|
||||
|
||||
LBYL
|
||||
Look before you leap. This coding style explicitly tests for
|
||||
pre-conditions before making calls or lookups. This style contrasts with
|
||||
|
@ -271,6 +323,12 @@ Glossary
|
|||
singletons, and many other tasks.
|
||||
|
||||
More information can be found in :ref:`metaclasses`.
|
||||
|
||||
method
|
||||
A function that is defined inside a class body. If called as an attribute
|
||||
of an instance of that class, the method will get the instance object as
|
||||
its first :term:`argument` (which is usually called ``self``).
|
||||
See :term:`function` and :term:`nested scope`.
|
||||
|
||||
mutable
|
||||
Mutable objects can change their value but keep their :func:`id`. See
|
||||
|
@ -305,10 +363,32 @@ Glossary
|
|||
|
||||
More information can be found in :ref:`newstyle`.
|
||||
|
||||
positional argument
|
||||
The arguments assigned to local names inside a function or method,
|
||||
determined by the order in which they were given in the call. ``*`` is
|
||||
used to either accept multiple positional arguments (when in the
|
||||
definition), or pass several arguments as a list to a function. See
|
||||
:term:`argument`.
|
||||
|
||||
Python 3000
|
||||
Nickname for the next major Python version, 3.0 (coined long ago when the
|
||||
release of version 3 was something in the distant future.)
|
||||
|
||||
Pythonic
|
||||
An idea or piece of code which closely follows the most common idioms of
|
||||
the Python language, rather than implementing code using concepts common
|
||||
in other languages. For example, a common idiom in Python is the :keyword:`for`
|
||||
loop structure; other languages don't have this easy keyword, so people
|
||||
use a numerical counter instead::
|
||||
|
||||
for i in range(len(food)):
|
||||
print food[i]
|
||||
|
||||
As opposed to the cleaner, Pythonic method::
|
||||
|
||||
for piece in food:
|
||||
print piece
|
||||
|
||||
reference count
|
||||
The number of places where a certain object is referenced to. When the
|
||||
reference count drops to zero, an object is deallocated. While reference
|
||||
|
@ -331,6 +411,18 @@ Glossary
|
|||
mapping rather than a sequence because the lookups use arbitrary
|
||||
:term:`immutable` keys rather than integers.
|
||||
|
||||
slice
|
||||
A list containing a portion of an indexed list-like object. A slice is
|
||||
created using the subscript notation, ``[]`` with colons between numbers
|
||||
when several are given, such as in ``variable_name[1:3:5]``. The bracket
|
||||
(subscript) notation uses :class:`slice` objects internally (or in older
|
||||
versions, :meth:`__getslice__` and :meth:`__setslice__`).
|
||||
|
||||
statement
|
||||
A statement is part of a suite (a "block" of code). A statement is either
|
||||
an :term:`expression` or a one of several constructs with a keyword, such
|
||||
as :keyword:`if`, :keyword:`while` or :keyword:`print`.
|
||||
|
||||
type
|
||||
The type of a Python object determines what kind of object it is; every
|
||||
object has a type. An object's type is accessible as its
|
||||
|
|
|
@ -96,7 +96,7 @@ passed along to the registered function when it is called::
|
|||
# or:
|
||||
atexit.register(goodbye, adjective='nice', name='Donny')
|
||||
|
||||
Usage as a decorator::
|
||||
Usage as a :term:`decorator`::
|
||||
|
||||
import atexit
|
||||
|
||||
|
|
|
@ -290,7 +290,7 @@ structure representing a stack trace.
|
|||
|
||||
|
||||
The following two methods can be called by clients to use a debugger to debug a
|
||||
statement, given as a string.
|
||||
:term:`statement`, given as a string.
|
||||
|
||||
.. method:: Bdb.run(cmd, [globals, [locals]])
|
||||
|
||||
|
|
|
@ -1119,9 +1119,9 @@ the table.
|
|||
| | | | all conversions. Can be |
|
||||
| | | | used as the system |
|
||||
| | | | encoding if no automatic |
|
||||
| | | | coercion between byte and |
|
||||
| | | | Unicode strings is |
|
||||
| | | | desired. |
|
||||
| | | | :term:`coercion` between |
|
||||
| | | | byte and Unicode strings |
|
||||
| | | | is desired. |
|
||||
+--------------------+---------------------------+----------------+---------------------------+
|
||||
| unicode_escape | | Unicode string | Produce a string that is |
|
||||
| | | | suitable as Unicode |
|
||||
|
|
|
@ -43,8 +43,8 @@ To do just the former:
|
|||
:exc:`OverflowError` or :exc:`ValueError` if there is an invalid literal.
|
||||
|
||||
The *symbol* argument determines whether *source* is compiled as a statement
|
||||
(``'single'``, the default) or as an expression (``'eval'``). Any other value
|
||||
will cause :exc:`ValueError` to be raised.
|
||||
(``'single'``, the default) or as an :term:`expression` (``'eval'``). Any
|
||||
other value will cause :exc:`ValueError` to be raised.
|
||||
|
||||
.. warning::
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@ Functions provided:
|
|||
|
||||
.. function:: contextmanager(func)
|
||||
|
||||
This function is a decorator that can be used to define a factory function for
|
||||
:keyword:`with` statement context managers, without needing to create a class or
|
||||
separate :meth:`__enter__` and :meth:`__exit__` methods.
|
||||
This function is a :term:`decorator` that can be used to define a factory
|
||||
function for :keyword:`with` statement context managers, without needing to
|
||||
create a class or separate :meth:`__enter__` and :meth:`__exit__` methods.
|
||||
|
||||
A simple example (this is not recommended as a real way of generating HTML!)::
|
||||
|
||||
|
|
|
@ -1135,7 +1135,8 @@ capabilities, then you should use the advanced API.
|
|||
The advanced API revolves around two container classes, which are used to store
|
||||
the interactive examples extracted from doctest cases:
|
||||
|
||||
* :class:`Example`: A single python statement, paired with its expected output.
|
||||
* :class:`Example`: A single python :term:`statement`, paired with its expected
|
||||
output.
|
||||
|
||||
* :class:`DocTest`: A collection of :class:`Example`\ s, typically extracted
|
||||
from a single docstring or text file.
|
||||
|
|
|
@ -161,8 +161,8 @@ available. They are listed here in alphabetical order.
|
|||
@classmethod
|
||||
def f(cls, arg1, arg2, ...): ...
|
||||
|
||||
The ``@classmethod`` form is a function decorator -- see the description of
|
||||
function definitions in :ref:`function` for details.
|
||||
The ``@classmethod`` form is a function :term:`decorator` -- see the description
|
||||
of function definitions in :ref:`function` for details.
|
||||
|
||||
It can be called either on the class (such as ``C.f()``) or on an instance (such
|
||||
as ``C().f()``). The instance is ignored except for its class. If a class
|
||||
|
@ -825,7 +825,7 @@ available. They are listed here in alphabetical order.
|
|||
|
||||
If given, *doc* will be the docstring of the property attribute. Otherwise, the
|
||||
property will copy *fget*'s docstring (if it exists). This makes it possible to
|
||||
create read-only properties easily using :func:`property` as a decorator::
|
||||
create read-only properties easily using :func:`property` as a :term:`decorator`::
|
||||
|
||||
class Parrot(object):
|
||||
def __init__(self):
|
||||
|
@ -1015,7 +1015,7 @@ available. They are listed here in alphabetical order.
|
|||
|
||||
.. index:: single: Numerical Python
|
||||
|
||||
Return a slice object representing the set of indices specified by
|
||||
Return a :term:`slice` object representing the set of indices specified by
|
||||
``range(start, stop, step)``. The *start* and *step* arguments default to
|
||||
``None``. Slice objects have read-only data attributes :attr:`start`,
|
||||
:attr:`stop` and :attr:`step` which merely return the argument values (or their
|
||||
|
@ -1063,8 +1063,8 @@ available. They are listed here in alphabetical order.
|
|||
@staticmethod
|
||||
def f(arg1, arg2, ...): ...
|
||||
|
||||
The ``@staticmethod`` form is a function decorator -- see the description of
|
||||
function definitions in :ref:`function` for details.
|
||||
The ``@staticmethod`` form is a function :term:`decorator` -- see the
|
||||
description of function definitions in :ref:`function` for details.
|
||||
|
||||
It can be called either on the class (such as ``C.f()``) or on an instance (such
|
||||
as ``C().f()``). The instance is ignored except for its class.
|
||||
|
|
|
@ -68,9 +68,9 @@ The :mod:`functools` module defines the following functions:
|
|||
*WRAPPER_UPDATES* (which updates the wrapper function's *__dict__*, i.e. the
|
||||
instance dictionary).
|
||||
|
||||
The main intended use for this function is in decorator functions which wrap the
|
||||
decorated function and return the wrapper. If the wrapper function is not
|
||||
updated, the metadata of the returned function will reflect the wrapper
|
||||
The main intended use for this function is in :term:`decorator` functions which
|
||||
wrap the decorated function and return the wrapper. If the wrapper function is
|
||||
not updated, the metadata of the returned function will reflect the wrapper
|
||||
definition rather than the original function definition, which is typically less
|
||||
than helpful.
|
||||
|
||||
|
|
|
@ -235,7 +235,7 @@ Note:
|
|||
|
||||
.. function:: isfunction(object)
|
||||
|
||||
Return true if the object is a Python function or unnamed (lambda) function.
|
||||
Return true if the object is a Python function or unnamed (:term:`lambda`) function.
|
||||
|
||||
|
||||
.. function:: istraceback(object)
|
||||
|
|
|
@ -280,10 +280,10 @@ Operations which work with sequences include:
|
|||
|
||||
Many operations have an "in-place" version. The following functions provide a
|
||||
more primitive access to in-place operators than the usual syntax does; for
|
||||
example, the statement ``x += y`` is equivalent to ``x = operator.iadd(x, y)``.
|
||||
Another way to put it is to say that ``z = operator.iadd(x, y)`` is equivalent
|
||||
to the compound statement ``z = x; z += y``.
|
||||
|
||||
example, the :term:`statement` ``x += y`` is equivalent to
|
||||
``x = operator.iadd(x, y)``. Another way to put it is to say that
|
||||
``z = operator.iadd(x, y)`` is equivalent to the compound statement
|
||||
``z = x; z += y``.
|
||||
|
||||
.. function:: iadd(a, b)
|
||||
__iadd__(a, b)
|
||||
|
|
|
@ -228,9 +228,9 @@ Sets can only contain immutable elements. For convenience, mutable :class:`Set`
|
|||
objects are automatically copied to an :class:`ImmutableSet` before being added
|
||||
as a set element.
|
||||
|
||||
The mechanism is to always add a hashable element, or if it is not hashable, the
|
||||
element is checked to see if it has an :meth:`__as_immutable__` method which
|
||||
returns an immutable equivalent.
|
||||
The mechanism is to always add a :term:`hashable` element, or if it is not
|
||||
hashable, the element is checked to see if it has an :meth:`__as_immutable__`
|
||||
method which returns an immutable equivalent.
|
||||
|
||||
Since :class:`Set` objects have a :meth:`__as_immutable__` method returning an
|
||||
instance of :class:`ImmutableSet`, it is possible to construct sets of sets.
|
||||
|
|
|
@ -2191,8 +2191,8 @@ decimal arithmetic context. The specific types are not treated specially beyond
|
|||
their implementation of the context management protocol. See the
|
||||
:mod:`contextlib` module for some examples.
|
||||
|
||||
Python's :term:`generator`\s and the ``contextlib.contextfactory`` decorator provide a
|
||||
convenient way to implement these protocols. If a generator function is
|
||||
Python's :term:`generator`\s and the ``contextlib.contextfactory`` :term:`decorator`
|
||||
provide a convenient way to implement these protocols. If a generator function is
|
||||
decorated with the ``contextlib.contextfactory`` decorator, it will return a
|
||||
context manager implementing the necessary :meth:`__enter__` and
|
||||
:meth:`__exit__` methods, rather than the iterator produced by an undecorated
|
||||
|
|
|
@ -86,9 +86,9 @@ always available.
|
|||
If *value* is not ``None``, this function prints it to ``sys.stdout``, and saves
|
||||
it in ``__builtin__._``.
|
||||
|
||||
``sys.displayhook`` is called on the result of evaluating an expression entered
|
||||
in an interactive Python session. The display of these values can be customized
|
||||
by assigning another one-argument function to ``sys.displayhook``.
|
||||
``sys.displayhook`` is called on the result of evaluating an :term:`expression`
|
||||
entered in an interactive Python session. The display of these values can be
|
||||
customized by assigning another one-argument function to ``sys.displayhook``.
|
||||
|
||||
|
||||
.. function:: excepthook(type, value, traceback)
|
||||
|
@ -617,12 +617,12 @@ always available.
|
|||
File objects corresponding to the interpreter's standard input, output and error
|
||||
streams. ``stdin`` is used for all interpreter input except for scripts but
|
||||
including calls to :func:`input` and :func:`raw_input`. ``stdout`` is used for
|
||||
the output of :keyword:`print` and expression statements and for the prompts of
|
||||
:func:`input` and :func:`raw_input`. The interpreter's own prompts and (almost
|
||||
all of) its error messages go to ``stderr``. ``stdout`` and ``stderr`` needn't
|
||||
be built-in file objects: any object is acceptable as long as it has a
|
||||
:meth:`write` method that takes a string argument. (Changing these objects
|
||||
doesn't affect the standard I/O streams of processes executed by
|
||||
the output of :keyword:`print` and :term:`expression` statements and for the
|
||||
prompts of :func:`input` and :func:`raw_input`. The interpreter's own prompts
|
||||
and (almost all of) its error messages go to ``stderr``. ``stdout`` and
|
||||
``stderr`` needn't be built-in file objects: any object is acceptable as long
|
||||
as it has a :meth:`write` method that takes a string argument. (Changing these
|
||||
objects doesn't affect the standard I/O streams of processes executed by
|
||||
:func:`os.popen`, :func:`os.system` or the :func:`exec\*` family of functions in
|
||||
the :mod:`os` module.)
|
||||
|
||||
|
|
|
@ -88,11 +88,12 @@ The module defines the following public class:
|
|||
|
||||
.. note::
|
||||
|
||||
By default, :meth:`timeit` temporarily turns off garbage collection during the
|
||||
timing. The advantage of this approach is that it makes independent timings
|
||||
more comparable. This disadvantage is that GC may be an important component of
|
||||
the performance of the function being measured. If so, GC can be re-enabled as
|
||||
the first statement in the *setup* string. For example::
|
||||
By default, :meth:`timeit` temporarily turns off :term:`garbage collection`
|
||||
during the timing. The advantage of this approach is that it makes
|
||||
independent timings more comparable. This disadvantage is that GC may be
|
||||
an important component of the performance of the function being measured.
|
||||
If so, GC can be re-enabled as the first statement in the *setup* string.
|
||||
For example::
|
||||
|
||||
timeit.Timer('for i in xrange(10): oct(i)', 'gc.enable()').timeit()
|
||||
|
||||
|
|
|
@ -22,22 +22,22 @@ In the following, the term :dfn:`referent` means the object which is referred to
|
|||
by a weak reference.
|
||||
|
||||
A weak reference to an object is not enough to keep the object alive: when the
|
||||
only remaining references to a referent are weak references, garbage collection
|
||||
is free to destroy the referent and reuse its memory for something else. A
|
||||
primary use for weak references is to implement caches or mappings holding large
|
||||
objects, where it's desired that a large object not be kept alive solely because
|
||||
it appears in a cache or mapping. For example, if you have a number of large
|
||||
binary image objects, you may wish to associate a name with each. If you used a
|
||||
Python dictionary to map names to images, or images to names, the image objects
|
||||
would remain alive just because they appeared as values or keys in the
|
||||
dictionaries. The :class:`WeakKeyDictionary` and :class:`WeakValueDictionary`
|
||||
classes supplied by the :mod:`weakref` module are an alternative, using weak
|
||||
references to construct mappings that don't keep objects alive solely because
|
||||
they appear in the mapping objects. If, for example, an image object is a value
|
||||
in a :class:`WeakValueDictionary`, then when the last remaining references to
|
||||
that image object are the weak references held by weak mappings, garbage
|
||||
collection can reclaim the object, and its corresponding entries in weak
|
||||
mappings are simply deleted.
|
||||
only remaining references to a referent are weak references,
|
||||
:term:`garbage collection` is free to destroy the referent and reuse its memory
|
||||
for something else. A primary use for weak references is to implement caches or
|
||||
mappings holding large objects, where it's desired that a large object not be
|
||||
kept alive solely because it appears in a cache or mapping. For example, if you
|
||||
have a number of large binary image objects, you may wish to associate a name
|
||||
with each. If you used a Python dictionary to map names to images, or images to
|
||||
names, the image objects would remain alive just because they appeared as values
|
||||
or keys in the dictionaries. The :class:`WeakKeyDictionary` and
|
||||
:class:`WeakValueDictionary` classes supplied by the :mod:`weakref` module are
|
||||
an alternative, using weak references to construct mappings that don't keep
|
||||
objects alive solely because they appear in the mapping objects. If, for
|
||||
example, an image object is a value in a :class:`WeakValueDictionary`, then when
|
||||
the last remaining references to that image object are the weak references held
|
||||
by weak mappings, garbage collection can reclaim the object, and its
|
||||
corresponding entries in weak mappings are simply deleted.
|
||||
|
||||
:class:`WeakKeyDictionary` and :class:`WeakValueDictionary` use weak references
|
||||
in their implementation, setting up callback functions on the weak references
|
||||
|
|
|
@ -428,7 +428,7 @@ when the function is called.
|
|||
The function definition does not execute the function body; this gets executed
|
||||
only when the function is called.
|
||||
|
||||
A function definition may be wrapped by one or more decorator expressions.
|
||||
A function definition may be wrapped by one or more :term:`decorator` expressions.
|
||||
Decorator expressions are evaluated when the function is defined, in the scope
|
||||
that contains the function definition. The result must be a callable, which is
|
||||
invoked with the function object as the only argument. The returned value is
|
||||
|
|
|
@ -239,8 +239,8 @@ Weak References
|
|||
===============
|
||||
|
||||
Python does automatic memory management (reference counting for most objects and
|
||||
garbage collection to eliminate cycles). The memory is freed shortly after the
|
||||
last reference to it has been eliminated.
|
||||
:term:`garbage collection` to eliminate cycles). The memory is freed shortly
|
||||
after the last reference to it has been eliminated.
|
||||
|
||||
This approach works fine for most applications but occasionally there is a need
|
||||
to track objects only as long as they are being used by something else.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue