Add :term:s for "new-style class".

This commit is contained in:
Georg Brandl 2007-10-21 12:15:05 +00:00
parent e7a0990113
commit a739503881
11 changed files with 27 additions and 20 deletions

View File

@ -256,6 +256,8 @@ Glossary
access, adding thread-safety, tracking object creation, implementing access, adding thread-safety, tracking object creation, implementing
singletons, and many other tasks. singletons, and many other tasks.
More information can be found in :ref:`metaclasses`.
mutable mutable
Mutable objects can change their value but keep their :func:`id`. See Mutable objects can change their value but keep their :func:`id`. See
also :term:`immutable`. also :term:`immutable`.
@ -287,6 +289,8 @@ Glossary
descriptors, properties, :meth:`__getattribute__`, class methods, and descriptors, properties, :meth:`__getattribute__`, class methods, and
static methods. static methods.
More information can be found in :ref:`newstyle`.
Python 3000 Python 3000
Nickname for the next major Python version, 3.0 (coined long ago when the Nickname for the next major Python version, 3.0 (coined long ago when the
release of version 3 was something in the distant future.) release of version 3 was something in the distant future.)

View File

@ -1950,7 +1950,7 @@ Data types
in case the memory block contains pointers. in case the memory block contains pointers.
Common methods of ctypes data types, these are all class methods (to be exact, Common methods of ctypes data types, these are all class methods (to be exact,
they are methods of the metaclass): they are methods of the :term:`metaclass`):
.. method:: _CData.from_address(address) .. method:: _CData.from_address(address)

View File

@ -350,7 +350,7 @@ available. They are listed here in alphabetical order.
The *expression* argument is parsed and evaluated as a Python expression The *expression* argument is parsed and evaluated as a Python expression
(technically speaking, a condition list) using the *globals* and *locals* (technically speaking, a condition list) using the *globals* and *locals*
dictionaries as global and local name space. If the *globals* dictionary is dictionaries as global and local namespace. If the *globals* dictionary is
present and lacks '__builtins__', the current globals are copied into *globals* present and lacks '__builtins__', the current globals are copied into *globals*
before *expression* is parsed. This means that *expression* normally has full before *expression* is parsed. This means that *expression* normally has full
access to the standard :mod:`__builtin__` module and restricted environments are access to the standard :mod:`__builtin__` module and restricted environments are
@ -808,8 +808,8 @@ available. They are listed here in alphabetical order.
.. function:: property([fget[, fset[, fdel[, doc]]]]) .. function:: property([fget[, fset[, fdel[, doc]]]])
Return a property attribute for new-style classes (classes that derive from Return a property attribute for :term:`new-style class`\es (classes that
:class:`object`). derive from :class:`object`).
*fget* is a function for getting an attribute value, likewise *fset* is a *fget* is a function for getting an attribute value, likewise *fset* is a
function for setting, and *fdel* a function for del'ing, an attribute. Typical function for setting, and *fdel* a function for del'ing, an attribute. Typical
@ -1112,8 +1112,8 @@ available. They are listed here in alphabetical order.
Return the superclass of *type*. If the second argument is omitted the super Return the superclass of *type*. If the second argument is omitted the super
object returned is unbound. If the second argument is an object, object returned is unbound. If the second argument is an object,
``isinstance(obj, type)`` must be true. If the second argument is a type, ``isinstance(obj, type)`` must be true. If the second argument is a type,
``issubclass(type2, type)`` must be true. :func:`super` only works for new-style ``issubclass(type2, type)`` must be true. :func:`super` only works for
classes. :term:`new-style class`\es.
A typical use for calling a cooperative superclass method is:: A typical use for calling a cooperative superclass method is::

View File

@ -22,7 +22,7 @@ logging system for applications.
Logging is performed by calling methods on instances of the :class:`Logger` Logging is performed by calling methods on instances of the :class:`Logger`
class (hereafter called :dfn:`loggers`). Each instance has a name, and they are class (hereafter called :dfn:`loggers`). Each instance has a name, and they are
conceptually arranged in a name space hierarchy using dots (periods) as conceptually arranged in a namespace hierarchy using dots (periods) as
separators. For example, a logger named "scan" is the parent of loggers separators. For example, a logger named "scan" is the parent of loggers
"scan.text", "scan.html" and "scan.pdf". Logger names can be anything you want, "scan.text", "scan.html" and "scan.pdf". Logger names can be anything you want,
and indicate the area of an application in which a logged message originates. and indicate the area of an application in which a logged message originates.

View File

@ -122,7 +122,7 @@ There are currently 3 different protocols which can be used for pickling.
earlier versions of Python. earlier versions of Python.
* Protocol version 2 was introduced in Python 2.3. It provides much more * Protocol version 2 was introduced in Python 2.3. It provides much more
efficient pickling of new-style classes. efficient pickling of :term:`new-style class`\es.
Refer to :pep:`307` for more information. Refer to :pep:`307` for more information.
@ -430,8 +430,8 @@ New-style types can provide a :meth:`__getnewargs__` method that is used for
protocol 2. Implementing this method is needed if the type establishes some protocol 2. Implementing this method is needed if the type establishes some
internal invariants when the instance is created, or if the memory allocation is internal invariants when the instance is created, or if the memory allocation is
affected by the values passed to the :meth:`__new__` method for the type (as it affected by the values passed to the :meth:`__new__` method for the type (as it
is for tuples and strings). Instances of a new-style type :class:`C` are is for tuples and strings). Instances of a :term:`new-style class` :class:`C`
created using :: are created using ::
obj = C.__new__(C, *args) obj = C.__new__(C, *args)
@ -459,8 +459,8 @@ can do what they want. [#]_
.. warning:: .. warning::
For new-style classes, if :meth:`__getstate__` returns a false value, the For :term:`new-style class`\es, if :meth:`__getstate__` returns a false
:meth:`__setstate__` method will not be called. value, the :meth:`__setstate__` method will not be called.
Pickling and unpickling extension types Pickling and unpickling extension types

View File

@ -549,7 +549,7 @@ string representation and register the function with :meth:`register_adapter`.
.. note:: .. note::
The type/class to adapt must be a new-style class, i. e. it must have The type/class to adapt must be a :term:`new-style class`, i. e. it must have
:class:`object` as one of its bases. :class:`object` as one of its bases.
.. literalinclude:: ../includes/sqlite3/adapter_point_2.py .. literalinclude:: ../includes/sqlite3/adapter_point_2.py

View File

@ -113,8 +113,9 @@ between conformable Python objects and XML on the wire.
The *use_datetime* flag was added. The *use_datetime* flag was added.
.. versionchanged:: 2.6 .. versionchanged:: 2.6
Instances of new-style classes can be passed in if they have an *__dict__* Instances of :term:`new-style class`\es can be passed in if they have an
attribute and don't have a base class that is marshalled in a special way. *__dict__* attribute and don't have a base class that is marshalled in a
special way.
.. seealso:: .. seealso::

View File

@ -534,8 +534,9 @@ must be given a value in the :meth:`__init__` method or in another method. Both
class and instance variables are accessible through the notation class and instance variables are accessible through the notation
"``self.name``", and an instance variable hides a class variable with the same "``self.name``", and an instance variable hides a class variable with the same
name when accessed in this way. Class variables with immutable values can be name when accessed in this way. Class variables with immutable values can be
used as defaults for instance variables. For new-style classes, descriptors can used as defaults for instance variables. For :term:`new-style class`\es,
be used to create instance variables with different implementation details. descriptors can be used to create instance variables with different
implementation details.
.. rubric:: Footnotes .. rubric:: Footnotes

View File

@ -1082,6 +1082,7 @@ Internal types
.. % Types .. % Types
.. % ========================================================================= .. % =========================================================================
.. _newstyle:
New-style and classic classes New-style and classic classes
============================= =============================

View File

@ -495,8 +495,8 @@ figure out the consequences of a name conflict with an attribute of
:class:`Base2`. The depth-first rule makes no differences between direct and :class:`Base2`. The depth-first rule makes no differences between direct and
inherited attributes of :class:`Base1`.) inherited attributes of :class:`Base1`.)
For new-style classes, the method resolution order changes dynamically to For :term:`new-style class`\es, the method resolution order changes dynamically
support cooperative calls to :func:`super`. This approach is known in some to support cooperative calls to :func:`super`. This approach is known in some
other multiple-inheritance languages as call-next-method and is more powerful other multiple-inheritance languages as call-next-method and is more powerful
than the super call found in single-inheritance languages. than the super call found in single-inheritance languages.

View File

@ -373,7 +373,7 @@ Environment variables
If this is the name of a readable file, the Python commands in that file are If this is the name of a readable file, the Python commands in that file are
executed before the first prompt is displayed in interactive mode. The file executed before the first prompt is displayed in interactive mode. The file
is executed in the same name space where interactive commands are executed so is executed in the same namespace where interactive commands are executed so
that objects defined or imported in it can be used without qualification in that objects defined or imported in it can be used without qualification in
the interactive session. You can also change the prompts :data:`sys.ps1` and the interactive session. You can also change the prompts :data:`sys.ps1` and
:data:`sys.ps2` in this file. :data:`sys.ps2` in this file.