mirror of https://github.com/python/cpython
Add various items
This commit is contained in:
parent
a8c3f2b6b6
commit
7c29aaee88
|
@ -555,10 +555,11 @@ adding a colon followed by a format specifier. For example::
|
||||||
Format specifiers can reference other fields through nesting::
|
Format specifiers can reference other fields through nesting::
|
||||||
|
|
||||||
fmt = '{0:{1}}'
|
fmt = '{0:{1}}'
|
||||||
fmt.format('Invoice #1234', width) ->
|
|
||||||
'Invoice #1234 '
|
|
||||||
fmt.format('Invoice #1234', 15) ->
|
fmt.format('Invoice #1234', 15) ->
|
||||||
'Invoice #1234 '
|
'Invoice #1234 '
|
||||||
|
width = 35
|
||||||
|
fmt.format('Invoice #1234', width) ->
|
||||||
|
'Invoice #1234 '
|
||||||
|
|
||||||
The alignment of a field within the desired width can be specified:
|
The alignment of a field within the desired width can be specified:
|
||||||
|
|
||||||
|
@ -571,11 +572,38 @@ Character Effect
|
||||||
= (For numeric types only) Pad after the sign.
|
= (For numeric types only) Pad after the sign.
|
||||||
================ ============================================
|
================ ============================================
|
||||||
|
|
||||||
Format data types::
|
Format specifiers can also include a presentation type, which
|
||||||
|
controls how the value is formatted. For example, floating-point numbers
|
||||||
|
can be formatted as a general number or in exponential notation:
|
||||||
|
|
||||||
... XXX take table from PEP 3101
|
>>> '{0:g}'.format(3.75)
|
||||||
|
'3.75'
|
||||||
|
>>> '{0:e}'.format(3.75)
|
||||||
|
'3.750000e+00'
|
||||||
|
|
||||||
Classes and types can define a __format__ method to control how it's
|
A variety of presentation types are available. Consult the 2.6
|
||||||
|
documentation for a complete list (XXX add link, once it's in the 2.6
|
||||||
|
docs), but here's a sample::
|
||||||
|
|
||||||
|
'b' - Binary. Outputs the number in base 2.
|
||||||
|
'c' - Character. Converts the integer to the corresponding
|
||||||
|
Unicode character before printing.
|
||||||
|
'd' - Decimal Integer. Outputs the number in base 10.
|
||||||
|
'o' - Octal format. Outputs the number in base 8.
|
||||||
|
'x' - Hex format. Outputs the number in base 16, using lower-
|
||||||
|
case letters for the digits above 9.
|
||||||
|
'e' - Exponent notation. Prints the number in scientific
|
||||||
|
notation using the letter 'e' to indicate the exponent.
|
||||||
|
'g' - General format. This prints the number as a fixed-point
|
||||||
|
number, unless the number is too large, in which case
|
||||||
|
it switches to 'e' exponent notation.
|
||||||
|
'n' - Number. This is the same as 'g', except that it uses the
|
||||||
|
current locale setting to insert the appropriate
|
||||||
|
number separator characters.
|
||||||
|
'%' - Percentage. Multiplies the number by 100 and displays
|
||||||
|
in fixed ('f') format, followed by a percent sign.
|
||||||
|
|
||||||
|
Classes and types can define a __format__ method to control how they're
|
||||||
formatted. It receives a single argument, the format specifier::
|
formatted. It receives a single argument, the format specifier::
|
||||||
|
|
||||||
def __format__(self, format_spec):
|
def __format__(self, format_spec):
|
||||||
|
@ -610,7 +638,6 @@ function from somewhere else.
|
||||||
Python 2.6 has a ``__future__`` import that removes ``print`` as language
|
Python 2.6 has a ``__future__`` import that removes ``print`` as language
|
||||||
syntax, letting you use the functional form instead. For example::
|
syntax, letting you use the functional form instead. For example::
|
||||||
|
|
||||||
XXX need to check
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
print('# of entries', len(dictionary), file=sys.stderr)
|
print('# of entries', len(dictionary), file=sys.stderr)
|
||||||
|
|
||||||
|
@ -701,6 +728,21 @@ and it also supports the ``b''`` notation.
|
||||||
|
|
||||||
.. ======================================================================
|
.. ======================================================================
|
||||||
|
|
||||||
|
.. _pep-3118:
|
||||||
|
|
||||||
|
PEP 3118: Revised Buffer Protocol
|
||||||
|
=====================================================
|
||||||
|
|
||||||
|
The buffer protocol is a C-level API that lets Python extensions
|
||||||
|
XXX
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
:pep:`3118` - Revising the buffer protocol
|
||||||
|
PEP written by Travis Oliphant and Carl Banks.
|
||||||
|
|
||||||
|
.. ======================================================================
|
||||||
|
|
||||||
.. _pep-3119:
|
.. _pep-3119:
|
||||||
|
|
||||||
PEP 3119: Abstract Base Classes
|
PEP 3119: Abstract Base Classes
|
||||||
|
@ -1082,7 +1124,7 @@ Optimizations
|
||||||
by using pymalloc for the Unicode string's data.
|
by using pymalloc for the Unicode string's data.
|
||||||
|
|
||||||
* The ``with`` statement now stores the :meth:`__exit__` method on the stack,
|
* The ``with`` statement now stores the :meth:`__exit__` method on the stack,
|
||||||
producing a small speedup. (Implemented by Nick Coghlan.)
|
producing a small speedup. (Implemented by Jeffrey Yasskin.)
|
||||||
|
|
||||||
* To reduce memory usage, the garbage collector will now clear internal
|
* To reduce memory usage, the garbage collector will now clear internal
|
||||||
free lists when garbage-collecting the highest generation of objects.
|
free lists when garbage-collecting the highest generation of objects.
|
||||||
|
@ -1361,10 +1403,8 @@ complete list of changes, or look through the CVS logs for all the details.
|
||||||
the forward search.
|
the forward search.
|
||||||
(Contributed by John Lenton.)
|
(Contributed by John Lenton.)
|
||||||
|
|
||||||
* The :mod:`new` module has been removed from Python 3.0.
|
* (3.0-warning mode) The :mod:`new` module has been removed from
|
||||||
Importing it therefore
|
Python 3.0. Importing it therefore triggers a warning message.
|
||||||
triggers a warning message when Python is running in 3.0-warning
|
|
||||||
mode.
|
|
||||||
|
|
||||||
* The :mod:`operator` module gained a
|
* The :mod:`operator` module gained a
|
||||||
:func:`methodcaller` function that takes a name and an optional
|
:func:`methodcaller` function that takes a name and an optional
|
||||||
|
@ -1483,6 +1523,14 @@ complete list of changes, or look through the CVS logs for all the details.
|
||||||
|
|
||||||
.. Issue 1727780
|
.. Issue 1727780
|
||||||
|
|
||||||
|
The new ``triangular(low, high, mode)`` function returns random
|
||||||
|
numbers following a triangular distribution. The returned values
|
||||||
|
are between *low* and *high*, not including *high* itself, and
|
||||||
|
with *mode* as the mode, the most frequently occurring value
|
||||||
|
in the distribution. (Contributed by Raymond Hettinger. XXX check)
|
||||||
|
|
||||||
|
.. Patch 1681432
|
||||||
|
|
||||||
* Long regular expression searches carried out by the :mod:`re`
|
* Long regular expression searches carried out by the :mod:`re`
|
||||||
module will now check for signals being delivered, so especially
|
module will now check for signals being delivered, so especially
|
||||||
long searches can now be interrupted.
|
long searches can now be interrupted.
|
||||||
|
@ -1500,6 +1548,16 @@ complete list of changes, or look through the CVS logs for all the details.
|
||||||
|
|
||||||
.. Patch 1861
|
.. Patch 1861
|
||||||
|
|
||||||
|
* The :mod:`select` module now has wrapper functions
|
||||||
|
for the Linux :cfunc:`epoll` and BSD :cfunc:`kqueue` system calls.
|
||||||
|
Also, a :meth:`modify` method was added to the existing :class:`poll`
|
||||||
|
objects; ``pollobj.modify(fd, eventmask)`` takes a file descriptor
|
||||||
|
or file object and an event mask,
|
||||||
|
|
||||||
|
(Contributed by XXX.)
|
||||||
|
|
||||||
|
.. Patch 1657
|
||||||
|
|
||||||
* The :mod:`sets` module has been deprecated; it's better to
|
* The :mod:`sets` module has been deprecated; it's better to
|
||||||
use the built-in :class:`set` and :class:`frozenset` types.
|
use the built-in :class:`set` and :class:`frozenset` types.
|
||||||
|
|
||||||
|
@ -1948,9 +2006,8 @@ Some of the more notable changes are:
|
||||||
Porting to Python 2.6
|
Porting to Python 2.6
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
This section lists previously described changes, and a few
|
This section lists previously described changes and other bugfixes
|
||||||
esoteric bugfixes, that may require changes to your
|
that may require changes to your code:
|
||||||
code:
|
|
||||||
|
|
||||||
* The :meth:`__init__` method of :class:`collections.deque`
|
* The :meth:`__init__` method of :class:`collections.deque`
|
||||||
now clears any existing contents of the deque
|
now clears any existing contents of the deque
|
||||||
|
@ -1986,7 +2043,11 @@ code:
|
||||||
|
|
||||||
.. Issue 1330538
|
.. Issue 1330538
|
||||||
|
|
||||||
* In 3.0-warning mode, inequality comparisons between two dictionaries
|
* (3.0-warning mode) The :class:`Exception` class now warns
|
||||||
|
when accessed using slicing or index access; having
|
||||||
|
:class:`Exception` behave like a tuple is being phased out.
|
||||||
|
|
||||||
|
* (3.0-warning mode) inequality comparisons between two dictionaries
|
||||||
or two objects that don't implement comparison methods are reported
|
or two objects that don't implement comparison methods are reported
|
||||||
as warnings. ``dict1 == dict2`` still works, but ``dict1 < dict2``
|
as warnings. ``dict1 == dict2`` still works, but ``dict1 < dict2``
|
||||||
is being phased out.
|
is being phased out.
|
||||||
|
|
Loading…
Reference in New Issue