mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Merged revisions 74613,74615,74619-74620,74622 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k ................ r74613 | georg.brandl | 2009-09-01 09:34:27 +0200 (Di, 01 Sep 2009) | 1 line #6814: remove traces of xrange(). ................ r74615 | georg.brandl | 2009-09-01 09:42:40 +0200 (Di, 01 Sep 2009) | 9 lines Recorded merge of revisions 74614 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r74614 | georg.brandl | 2009-09-01 09:40:54 +0200 (Di, 01 Sep 2009) | 1 line #6813: better documentation for numberless string formats. ........ ................ r74619 | georg.brandl | 2009-09-01 10:02:03 +0200 (Di, 01 Sep 2009) | 1 line #6754: remove old struct member nb_inplace_divide. ................ r74620 | georg.brandl | 2009-09-01 10:03:26 +0200 (Di, 01 Sep 2009) | 1 line #6732: fix return value of module init function in example. ................ r74622 | georg.brandl | 2009-09-01 10:11:14 +0200 (Di, 01 Sep 2009) | 73 lines Merged revisions 74542,74544-74548,74550,74554-74555,74578,74588,74590,74603,74616-74618,74621 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r74542 | georg.brandl | 2009-08-23 23:28:56 +0200 (So, 23 Aug 2009) | 1 line Restore alphabetic order. ........ r74544 | georg.brandl | 2009-08-24 19:12:30 +0200 (Mo, 24 Aug 2009) | 1 line #6775: fix python.org URLs in README. ........ r74545 | georg.brandl | 2009-08-24 19:14:29 +0200 (Mo, 24 Aug 2009) | 1 line #6772: mention utf-8 as utf8 alias. ........ r74546 | georg.brandl | 2009-08-24 19:20:40 +0200 (Mo, 24 Aug 2009) | 1 line #6725: spell "namespace" consistently. ........ r74547 | georg.brandl | 2009-08-24 19:22:05 +0200 (Mo, 24 Aug 2009) | 1 line #6718: fix example. ........ r74548 | georg.brandl | 2009-08-24 19:24:27 +0200 (Mo, 24 Aug 2009) | 1 line #6677: mention "deleting" as an alias for removing files. ........ r74550 | georg.brandl | 2009-08-24 19:48:40 +0200 (Mo, 24 Aug 2009) | 1 line #6677: note that rmdir only removes empty directories. ........ r74554 | georg.brandl | 2009-08-27 20:59:02 +0200 (Do, 27 Aug 2009) | 1 line Typo fix. ........ r74555 | georg.brandl | 2009-08-27 21:02:43 +0200 (Do, 27 Aug 2009) | 1 line #6787: reference fix. ........ r74578 | tarek.ziade | 2009-08-29 15:33:21 +0200 (Sa, 29 Aug 2009) | 1 line fixed #6801: symmetric_difference_update also accepts pipe ........ r74588 | georg.brandl | 2009-08-30 10:35:01 +0200 (So, 30 Aug 2009) | 1 line #6803: fix old name. ........ r74590 | georg.brandl | 2009-08-30 13:51:53 +0200 (So, 30 Aug 2009) | 1 line #6801: fix copy-paste oversight. ........ r74603 | georg.brandl | 2009-08-31 08:38:29 +0200 (Mo, 31 Aug 2009) | 1 line other -> others where multiple arguments are accepted. ........ r74616 | georg.brandl | 2009-09-01 09:46:26 +0200 (Di, 01 Sep 2009) | 1 line #6808: clarification. ........ r74617 | georg.brandl | 2009-09-01 09:53:37 +0200 (Di, 01 Sep 2009) | 1 line #6765: hint that log(x, base) is not very sophisticated. ........ r74618 | georg.brandl | 2009-09-01 10:00:47 +0200 (Di, 01 Sep 2009) | 1 line #6810: add a link to the section about frame objects instead of just a description where to find it. ........ r74621 | georg.brandl | 2009-09-01 10:06:03 +0200 (Di, 01 Sep 2009) | 1 line #6638: fix wrong parameter name and markup a class. ........ ................
This commit is contained in:
parent
2686039b76
commit
7baf625bab
20 changed files with 71 additions and 50 deletions
|
@ -1052,7 +1052,6 @@ Number Object Structures
|
||||||
binaryfunc nb_inplace_add;
|
binaryfunc nb_inplace_add;
|
||||||
binaryfunc nb_inplace_subtract;
|
binaryfunc nb_inplace_subtract;
|
||||||
binaryfunc nb_inplace_multiply;
|
binaryfunc nb_inplace_multiply;
|
||||||
binaryfunc nb_inplace_divide;
|
|
||||||
binaryfunc nb_inplace_remainder;
|
binaryfunc nb_inplace_remainder;
|
||||||
ternaryfunc nb_inplace_power;
|
ternaryfunc nb_inplace_power;
|
||||||
binaryfunc nb_inplace_lshift;
|
binaryfunc nb_inplace_lshift;
|
||||||
|
|
|
@ -98,17 +98,17 @@ def test():
|
||||||
|
|
||||||
t = time.time()
|
t = time.time()
|
||||||
A = list(map(pow3, range(N)))
|
A = list(map(pow3, range(N)))
|
||||||
print('\tmap(pow3, xrange(%d)):\n\t\t%s seconds' % \
|
print('\tmap(pow3, range(%d)):\n\t\t%s seconds' % \
|
||||||
(N, time.time() - t))
|
(N, time.time() - t))
|
||||||
|
|
||||||
t = time.time()
|
t = time.time()
|
||||||
B = pool.map(pow3, range(N))
|
B = pool.map(pow3, range(N))
|
||||||
print('\tpool.map(pow3, xrange(%d)):\n\t\t%s seconds' % \
|
print('\tpool.map(pow3, range(%d)):\n\t\t%s seconds' % \
|
||||||
(N, time.time() - t))
|
(N, time.time() - t))
|
||||||
|
|
||||||
t = time.time()
|
t = time.time()
|
||||||
C = list(pool.imap(pow3, range(N), chunksize=N//8))
|
C = list(pool.imap(pow3, range(N), chunksize=N//8))
|
||||||
print('\tlist(pool.imap(pow3, xrange(%d), chunksize=%d)):\n\t\t%s' \
|
print('\tlist(pool.imap(pow3, range(%d), chunksize=%d)):\n\t\t%s' \
|
||||||
' seconds' % (N, N//8, time.time() - t))
|
' seconds' % (N, N//8, time.time() - t))
|
||||||
|
|
||||||
assert A == B == C, (len(A), len(B), len(C))
|
assert A == B == C, (len(A), len(B), len(C))
|
||||||
|
|
|
@ -95,4 +95,5 @@ PyInit_shoddy(void)
|
||||||
|
|
||||||
Py_INCREF(&ShoddyType);
|
Py_INCREF(&ShoddyType);
|
||||||
PyModule_AddObject(m, "Shoddy", (PyObject *) &ShoddyType);
|
PyModule_AddObject(m, "Shoddy", (PyObject *) &ShoddyType);
|
||||||
|
return m;
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,7 +147,7 @@ In addition to these methods, lock objects can also be used via the
|
||||||
module is available, interrupts always go to the main thread.)
|
module is available, interrupts always go to the main thread.)
|
||||||
|
|
||||||
* Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is
|
* Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is
|
||||||
equivalent to calling :func:`exit`.
|
equivalent to calling :func:`_thread.exit`.
|
||||||
|
|
||||||
* Not all built-in functions that may block waiting for I/O allow other threads
|
* Not all built-in functions that may block waiting for I/O allow other threads
|
||||||
to run. (The most popular ones (:func:`time.sleep`, :meth:`file.read`,
|
to run. (The most popular ones (:func:`time.sleep`, :meth:`file.read`,
|
||||||
|
|
|
@ -891,7 +891,8 @@ or with dictionaries as mapping tables. The following table lists the codecs by
|
||||||
name, together with a few common aliases, and the languages for which the
|
name, together with a few common aliases, and the languages for which the
|
||||||
encoding is likely used. Neither the list of aliases nor the list of languages
|
encoding is likely used. Neither the list of aliases nor the list of languages
|
||||||
is meant to be exhaustive. Notice that spelling alternatives that only differ in
|
is meant to be exhaustive. Notice that spelling alternatives that only differ in
|
||||||
case or use a hyphen instead of an underscore are also valid aliases.
|
case or use a hyphen instead of an underscore are also valid aliases; therefore,
|
||||||
|
e.g. ``'utf-8'`` is a valid alias for the ``'utf_8'`` codec.
|
||||||
|
|
||||||
Many of the character sets support the same languages. They vary in individual
|
Many of the character sets support the same languages. They vary in individual
|
||||||
characters (e.g. whether the EURO SIGN is supported or not), and in the
|
characters (e.g. whether the EURO SIGN is supported or not), and in the
|
||||||
|
|
|
@ -1592,7 +1592,7 @@ type and the argument types of the function.
|
||||||
The returned function prototype creates functions that use the standard C
|
The returned function prototype creates functions that use the standard C
|
||||||
calling convention. The function will release the GIL during the call. If
|
calling convention. The function will release the GIL during the call. If
|
||||||
*use_errno* is set to True, the ctypes private copy of the system
|
*use_errno* is set to True, the ctypes private copy of the system
|
||||||
:data:`errno` variable is exchanged with the real :data:`errno` value bafore
|
:data:`errno` variable is exchanged with the real :data:`errno` value before
|
||||||
and after the call; *use_last_error* does the same for the Windows error
|
and after the call; *use_last_error* does the same for the Windows error
|
||||||
code.
|
code.
|
||||||
|
|
||||||
|
|
|
@ -150,8 +150,10 @@ Power and logarithmic functions
|
||||||
|
|
||||||
.. function:: log(x[, base])
|
.. function:: log(x[, base])
|
||||||
|
|
||||||
Return the logarithm of *x* to the given *base*. If the *base* is not specified,
|
With one argument, return the natural logarithm of *x* (to base *e*).
|
||||||
return the natural logarithm of *x* (that is, the logarithm to base *e*).
|
|
||||||
|
With two arguments, return the logarithm of *x* to the given *base*,
|
||||||
|
calculated as ``log(x)/log(base)``.
|
||||||
|
|
||||||
|
|
||||||
.. function:: log1p(x)
|
.. function:: log1p(x)
|
||||||
|
@ -162,7 +164,8 @@ Power and logarithmic functions
|
||||||
|
|
||||||
.. function:: log10(x)
|
.. function:: log10(x)
|
||||||
|
|
||||||
Return the base-10 logarithm of *x*.
|
Return the base-10 logarithm of *x*. This is usually more accurate
|
||||||
|
than ``log(x, 10)``.
|
||||||
|
|
||||||
|
|
||||||
.. function:: pow(x, y)
|
.. function:: pow(x, y)
|
||||||
|
|
|
@ -1166,19 +1166,20 @@ where the input parameters are
|
||||||
the list of arguments to process (default: ``sys.argv[1:]``)
|
the list of arguments to process (default: ``sys.argv[1:]``)
|
||||||
|
|
||||||
``values``
|
``values``
|
||||||
object to store option arguments in (default: a new instance of optparse.Values)
|
object to store option arguments in (default: a new instance of
|
||||||
|
:class:`optparse.Values`)
|
||||||
|
|
||||||
and the return values are
|
and the return values are
|
||||||
|
|
||||||
``options``
|
``options``
|
||||||
the same object that was passed in as ``options``, or the optparse.Values
|
the same object that was passed in as ``values``, or the optparse.Values
|
||||||
instance created by :mod:`optparse`
|
instance created by :mod:`optparse`
|
||||||
|
|
||||||
``args``
|
``args``
|
||||||
the leftover positional arguments after all options have been processed
|
the leftover positional arguments after all options have been processed
|
||||||
|
|
||||||
The most common usage is to supply neither keyword argument. If you supply
|
The most common usage is to supply neither keyword argument. If you supply
|
||||||
``options``, it will be modified with repeated ``setattr()`` calls (roughly one
|
``values``, it will be modified with repeated ``setattr()`` calls (roughly one
|
||||||
for every option argument stored to an option destination) and returned by
|
for every option argument stored to an option destination) and returned by
|
||||||
:meth:`parse_args`.
|
:meth:`parse_args`.
|
||||||
|
|
||||||
|
|
|
@ -396,7 +396,7 @@ by file descriptors.
|
||||||
Close all file descriptors from *fd_low* (inclusive) to *fd_high* (exclusive),
|
Close all file descriptors from *fd_low* (inclusive) to *fd_high* (exclusive),
|
||||||
ignoring errors. Availability: Unix, Windows. Equivalent to::
|
ignoring errors. Availability: Unix, Windows. Equivalent to::
|
||||||
|
|
||||||
for fd in xrange(fd_low, fd_high):
|
for fd in range(fd_low, fd_high):
|
||||||
try:
|
try:
|
||||||
os.close(fd)
|
os.close(fd)
|
||||||
except OSError:
|
except OSError:
|
||||||
|
@ -947,12 +947,12 @@ Files and Directories
|
||||||
|
|
||||||
.. function:: remove(path)
|
.. function:: remove(path)
|
||||||
|
|
||||||
Remove the file *path*. If *path* is a directory, :exc:`OSError` is raised; see
|
Remove (delete) the file *path*. If *path* is a directory, :exc:`OSError` is
|
||||||
:func:`rmdir` below to remove a directory. This is identical to the
|
raised; see :func:`rmdir` below to remove a directory. This is identical to
|
||||||
:func:`unlink` function documented below. On Windows, attempting to remove a
|
the :func:`unlink` function documented below. On Windows, attempting to
|
||||||
file that is in use causes an exception to be raised; on Unix, the directory
|
remove a file that is in use causes an exception to be raised; on Unix, the
|
||||||
entry is removed but the storage allocated to the file is not made available
|
directory entry is removed but the storage allocated to the file is not made
|
||||||
until the original file is no longer in use. Availability: Unix,
|
available until the original file is no longer in use. Availability: Unix,
|
||||||
Windows.
|
Windows.
|
||||||
|
|
||||||
|
|
||||||
|
@ -997,7 +997,10 @@ Files and Directories
|
||||||
|
|
||||||
.. function:: rmdir(path)
|
.. function:: rmdir(path)
|
||||||
|
|
||||||
Remove the directory *path*. Availability: Unix, Windows.
|
Remove (delete) the directory *path*. Only works when the directory is
|
||||||
|
empty, otherwise, :exc:`OSError` is raised. In order to remove whole
|
||||||
|
directory trees, :func:`shutil.rmtree` can be used. Availability: Unix,
|
||||||
|
Windows.
|
||||||
|
|
||||||
|
|
||||||
.. function:: stat(path)
|
.. function:: stat(path)
|
||||||
|
@ -1099,9 +1102,9 @@ Files and Directories
|
||||||
|
|
||||||
.. function:: unlink(path)
|
.. function:: unlink(path)
|
||||||
|
|
||||||
Remove the file *path*. This is the same function as :func:`remove`; the
|
Remove (delete) the file *path*. This is the same function as
|
||||||
:func:`unlink` name is its traditional Unix name. Availability: Unix,
|
:func:`remove`; the :func:`unlink` name is its traditional Unix
|
||||||
Windows.
|
name. Availability: Unix, Windows.
|
||||||
|
|
||||||
|
|
||||||
.. function:: utime(path, times)
|
.. function:: utime(path, times)
|
||||||
|
|
|
@ -205,9 +205,9 @@ The :mod:`signal` module defines the following functions:
|
||||||
exception to be raised.
|
exception to be raised.
|
||||||
|
|
||||||
The *handler* is called with two arguments: the signal number and the current
|
The *handler* is called with two arguments: the signal number and the current
|
||||||
stack frame (``None`` or a frame object; for a description of frame objects, see
|
stack frame (``None`` or a frame object; for a description of frame objects,
|
||||||
the reference manual section on the standard type hierarchy or see the attribute
|
see the :ref:`description in the type hierarchy <frame-objects>` or see the
|
||||||
descriptions in the :mod:`inspect` module).
|
attribute descriptions in the :mod:`inspect` module).
|
||||||
|
|
||||||
|
|
||||||
.. _signal-example:
|
.. _signal-example:
|
||||||
|
|
|
@ -1724,12 +1724,12 @@ The constructors for both classes work the same:
|
||||||
.. method:: update(other, ...)
|
.. method:: update(other, ...)
|
||||||
set |= other | ...
|
set |= other | ...
|
||||||
|
|
||||||
Update the set, adding elements from *other*.
|
Update the set, adding elements from all others.
|
||||||
|
|
||||||
.. method:: intersection_update(other, ...)
|
.. method:: intersection_update(other, ...)
|
||||||
set &= other & ...
|
set &= other & ...
|
||||||
|
|
||||||
Update the set, keeping only elements found in it and *other*.
|
Update the set, keeping only elements found in it and all others.
|
||||||
|
|
||||||
.. method:: difference_update(other, ...)
|
.. method:: difference_update(other, ...)
|
||||||
set -= other | ...
|
set -= other | ...
|
||||||
|
@ -2478,9 +2478,9 @@ decimal arithmetic context. The specific types are not treated specially beyond
|
||||||
their implementation of the context management protocol. See the
|
their implementation of the context management protocol. See the
|
||||||
:mod:`contextlib` module for some examples.
|
:mod:`contextlib` module for some examples.
|
||||||
|
|
||||||
Python's :term:`generator`\s and the ``contextlib.contextfactory`` :term:`decorator`
|
Python's :term:`generator`\s and the ``contextlib.contextmanager`` :term:`decorator`
|
||||||
provide a convenient way to implement these protocols. If a generator function is
|
provide a convenient way to implement these protocols. If a generator function is
|
||||||
decorated with the ``contextlib.contextfactory`` decorator, it will return a
|
decorated with the ``contextlib.contextmanager`` decorator, it will return a
|
||||||
context manager implementing the necessary :meth:`__enter__` and
|
context manager implementing the necessary :meth:`__enter__` and
|
||||||
:meth:`__exit__` methods, rather than the iterator produced by an undecorated
|
:meth:`__exit__` methods, rather than the iterator produced by an undecorated
|
||||||
generator function.
|
generator function.
|
||||||
|
|
|
@ -194,7 +194,7 @@ literal text, it can be escaped by doubling: ``{{`` and ``}}``.
|
||||||
The grammar for a replacement field is as follows:
|
The grammar for a replacement field is as follows:
|
||||||
|
|
||||||
.. productionlist:: sf
|
.. productionlist:: sf
|
||||||
replacement_field: "{" `field_name` ["!" `conversion`] [":" `format_spec`] "}"
|
replacement_field: "{" [`field_name`] ["!" `conversion`] [":" `format_spec`] "}"
|
||||||
field_name: arg_name ("." `attribute_name` | "[" `element_index` "]")*
|
field_name: arg_name ("." `attribute_name` | "[" `element_index` "]")*
|
||||||
arg_name: (`identifier` | `integer`)?
|
arg_name: (`identifier` | `integer`)?
|
||||||
attribute_name: `identifier`
|
attribute_name: `identifier`
|
||||||
|
@ -202,7 +202,7 @@ The grammar for a replacement field is as follows:
|
||||||
conversion: "r" | "s" | "a"
|
conversion: "r" | "s" | "a"
|
||||||
format_spec: <described in the next section>
|
format_spec: <described in the next section>
|
||||||
|
|
||||||
In less formal terms, the replacement field starts with a *field_name* that specifies
|
In less formal terms, the replacement field can start with a *field_name* that specifies
|
||||||
the object whose value is to be formatted and inserted
|
the object whose value is to be formatted and inserted
|
||||||
into the output instead of the replacement field.
|
into the output instead of the replacement field.
|
||||||
The *field_name* is optionally followed by a *conversion* field, which is
|
The *field_name* is optionally followed by a *conversion* field, which is
|
||||||
|
@ -223,7 +223,7 @@ Some simple format string examples::
|
||||||
|
|
||||||
"First, thou shalt count to {0}" # References first positional argument
|
"First, thou shalt count to {0}" # References first positional argument
|
||||||
"Bring me a {}" # Implicitly references the first positional argument
|
"Bring me a {}" # Implicitly references the first positional argument
|
||||||
"From {} to {}" # Same as "From {0] to {1}"
|
"From {} to {}" # Same as "From {0} to {1}"
|
||||||
"My quest is {name}" # References keyword argument 'name'
|
"My quest is {name}" # References keyword argument 'name'
|
||||||
"Weight in tons {0.weight}" # 'weight' attribute of first positional arg
|
"Weight in tons {0.weight}" # 'weight' attribute of first positional arg
|
||||||
"Units destroyed: {players[0]}" # First element of keyword argument 'players'.
|
"Units destroyed: {players[0]}" # First element of keyword argument 'players'.
|
||||||
|
@ -243,6 +243,7 @@ Some examples::
|
||||||
|
|
||||||
"Harold's a clever {0!s}" # Calls str() on the argument first
|
"Harold's a clever {0!s}" # Calls str() on the argument first
|
||||||
"Bring out the holy {name!r}" # Calls repr() on the argument first
|
"Bring out the holy {name!r}" # Calls repr() on the argument first
|
||||||
|
"More {!a}" # Calls ascii() on the argument first
|
||||||
|
|
||||||
The *format_spec* field contains a specification of how the value should be
|
The *format_spec* field contains a specification of how the value should be
|
||||||
presented, including such details as field width, alignment, padding, decimal
|
presented, including such details as field width, alignment, padding, decimal
|
||||||
|
|
|
@ -864,6 +864,8 @@ Internal types
|
||||||
If a code object represents a function, the first item in :attr:`co_consts` is
|
If a code object represents a function, the first item in :attr:`co_consts` is
|
||||||
the documentation string of the function, or ``None`` if undefined.
|
the documentation string of the function, or ``None`` if undefined.
|
||||||
|
|
||||||
|
.. _frame-objects:
|
||||||
|
|
||||||
Frame objects
|
Frame objects
|
||||||
.. index:: object: frame
|
.. index:: object: frame
|
||||||
|
|
||||||
|
|
|
@ -51,8 +51,8 @@ need for two different argument passing mechanisms as in Pascal.
|
||||||
|
|
||||||
.. _tut-scopes:
|
.. _tut-scopes:
|
||||||
|
|
||||||
Python Scopes and Name Spaces
|
Python Scopes and Namespaces
|
||||||
=============================
|
============================
|
||||||
|
|
||||||
Before introducing classes, I first have to tell you something about Python's
|
Before introducing classes, I first have to tell you something about Python's
|
||||||
scope rules. Class definitions play some neat tricks with namespaces, and you
|
scope rules. Class definitions play some neat tricks with namespaces, and you
|
||||||
|
@ -381,9 +381,9 @@ data attribute, its class is searched. If the name denotes a valid class
|
||||||
attribute that is a function object, a method object is created by packing
|
attribute that is a function object, a method object is created by packing
|
||||||
(pointers to) the instance object and the function object just found together in
|
(pointers to) the instance object and the function object just found together in
|
||||||
an abstract object: this is the method object. When the method object is called
|
an abstract object: this is the method object. When the method object is called
|
||||||
with an argument list, it is unpacked again, a new argument list is constructed
|
with an argument list, a new argument list is constructed from the instance
|
||||||
from the instance object and the original argument list, and the function object
|
object and the argument list, and the function object is called with this new
|
||||||
is called with this new argument list.
|
argument list.
|
||||||
|
|
||||||
|
|
||||||
.. _tut-remarks:
|
.. _tut-remarks:
|
||||||
|
|
|
@ -126,12 +126,12 @@ with zeros. It understands about plus and minus signs::
|
||||||
|
|
||||||
Basic usage of the :meth:`str.format` method looks like this::
|
Basic usage of the :meth:`str.format` method looks like this::
|
||||||
|
|
||||||
>>> print('We are the {0} who say "{1}!"'.format('knights', 'Ni'))
|
>>> print('We are the {} who say "{}!"'.format('knights', 'Ni'))
|
||||||
We are the knights who say "Ni!"
|
We are the knights who say "Ni!"
|
||||||
|
|
||||||
The brackets and characters within them (called format fields) are replaced with
|
The brackets and characters within them (called format fields) are replaced with
|
||||||
the objects passed into the :meth:`~str.format` method. The number in the
|
the objects passed into the :meth:`~str.format` method. A number in the
|
||||||
brackets refers to the position of the object passed into the
|
brackets can be used to refer to the position of the object passed into the
|
||||||
:meth:`~str.format` method. ::
|
:meth:`~str.format` method. ::
|
||||||
|
|
||||||
>>> print('{0} and {1}'.format('spam', 'eggs'))
|
>>> print('{0} and {1}'.format('spam', 'eggs'))
|
||||||
|
@ -152,6 +152,15 @@ Positional and keyword arguments can be arbitrarily combined::
|
||||||
other='Georg'))
|
other='Georg'))
|
||||||
The story of Bill, Manfred, and Georg.
|
The story of Bill, Manfred, and Georg.
|
||||||
|
|
||||||
|
``'!a'`` (apply :func:`ascii`), ``'!s'`` (apply :func:`str`) and ``'!r'``
|
||||||
|
(apply :func:`repr`) can be used to convert the value before it is formatted::
|
||||||
|
|
||||||
|
>>> import math
|
||||||
|
>>> print('The value of PI is approximately {}.'.format(math.pi))
|
||||||
|
The value of PI is approximately 3.14159265359.
|
||||||
|
>>> print('The value of PI is approximately {!r}.'.format(math.pi))
|
||||||
|
The value of PI is approximately 3.141592653589793.
|
||||||
|
|
||||||
An optional ``':'`` and format specifier can follow the field name. This allows
|
An optional ``':'`` and format specifier can follow the field name. This allows
|
||||||
greater control over how the value is formatted. The following example
|
greater control over how the value is formatted. The following example
|
||||||
truncates Pi to three places after the decimal.
|
truncates Pi to three places after the decimal.
|
||||||
|
|
|
@ -789,6 +789,7 @@ Mats Wichmann
|
||||||
Truida Wiedijk
|
Truida Wiedijk
|
||||||
Felix Wiemann
|
Felix Wiemann
|
||||||
Gerry Wiener
|
Gerry Wiener
|
||||||
|
Frank Wierzbicki
|
||||||
Bryce "Zooko" Wilcox-O'Hearn
|
Bryce "Zooko" Wilcox-O'Hearn
|
||||||
John Williams
|
John Williams
|
||||||
Sue Williams
|
Sue Williams
|
||||||
|
|
|
@ -1462,6 +1462,9 @@ Build
|
||||||
- Issue #4204: Fixed module build errors on FreeBSD 4.
|
- Issue #4204: Fixed module build errors on FreeBSD 4.
|
||||||
|
|
||||||
|
|
||||||
|
- Issue #6801 : symmetric_difference_update also accepts |.
|
||||||
|
Thanks to Carl Chenet.
|
||||||
|
|
||||||
C-API
|
C-API
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|
|
@ -606,7 +606,7 @@ from time import clock as now
|
||||||
|
|
||||||
def fill(n):
|
def fill(n):
|
||||||
from random import random
|
from random import random
|
||||||
return [random() for i in xrange(n)]
|
return [random() for i in range(n)]
|
||||||
|
|
||||||
def mycmp(x, y):
|
def mycmp(x, y):
|
||||||
global ncmp
|
global ncmp
|
||||||
|
|
|
@ -431,7 +431,7 @@ PyTypeObject PyRangeIter_Type = {
|
||||||
rangeiter_new, /* tp_new */
|
rangeiter_new, /* tp_new */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Return number of items in range/xrange (lo, hi, step). step > 0
|
/* Return number of items in range (lo, hi, step). step > 0
|
||||||
* required. Return a value < 0 if & only if the true value is too
|
* required. Return a value < 0 if & only if the true value is too
|
||||||
* large to fit in a signed long.
|
* large to fit in a signed long.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -260,10 +260,7 @@ class IntegerCounting(Test):
|
||||||
|
|
||||||
# Run test rounds
|
# Run test rounds
|
||||||
#
|
#
|
||||||
# NOTE: Use xrange() for all test loops unless you want to face
|
for i in range(self.rounds):
|
||||||
# a 20MB process !
|
|
||||||
#
|
|
||||||
for i in xrange(self.rounds):
|
|
||||||
|
|
||||||
# Repeat the operations per round to raise the run-time
|
# Repeat the operations per round to raise the run-time
|
||||||
# per operation significantly above the noise level of the
|
# per operation significantly above the noise level of the
|
||||||
|
@ -305,7 +302,7 @@ class IntegerCounting(Test):
|
||||||
a = 1
|
a = 1
|
||||||
|
|
||||||
# Run test rounds (without actually doing any operation)
|
# Run test rounds (without actually doing any operation)
|
||||||
for i in xrange(self.rounds):
|
for i in range(self.rounds):
|
||||||
|
|
||||||
# Skip the actual execution of the operations, since we
|
# Skip the actual execution of the operations, since we
|
||||||
# only want to measure the test's administration overhead.
|
# only want to measure the test's administration overhead.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue