diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2012-03-06 12:45:57 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2012-03-06 12:45:57 (GMT) |
commit | 2d627980d547088b52eb447f4e7a8ab7292fa4af (patch) | |
tree | e62b25cc6543ced909470df14cd3c23e00445bf8 | |
parent | 5bb9a8f237d3f45e930a9a10ac0ca9c35906992a (diff) | |
parent | b9b281b78787a63a86d865bdcb8e7aad36d09e19 (diff) | |
download | cpython-2d627980d547088b52eb447f4e7a8ab7292fa4af.zip cpython-2d627980d547088b52eb447f4e7a8ab7292fa4af.tar.gz cpython-2d627980d547088b52eb447f4e7a8ab7292fa4af.tar.bz2 |
Merge
-rw-r--r-- | Doc/whatsnew/3.3.rst | 72 |
1 files changed, 67 insertions, 5 deletions
diff --git a/Doc/whatsnew/3.3.rst b/Doc/whatsnew/3.3.rst index 2fa452f..23048c5 100644 --- a/Doc/whatsnew/3.3.rst +++ b/Doc/whatsnew/3.3.rst @@ -49,6 +49,8 @@ This article explains the new features in Python 3.3, compared to 3.2. +.. pep-3118-update: + PEP 3118: New memoryview implementation and buffer protocol documentation ========================================================================= @@ -85,7 +87,9 @@ Features * Multi-dimensional comparisons are supported for any array type. * All array types are hashable if the exporting object is hashable - and the view is read-only. + and the view is read-only. (Contributed by Antoine Pitrou in + :issue:`13411`) + * Arbitrary slicing of any 1-D arrays type is supported. For example, it is now possible to reverse a memoryview in O(1) by using a negative step. @@ -258,9 +262,56 @@ part of its operations to another generator. This allows a section of code containing 'yield' to be factored out and placed in another generator. Additionally, the subgenerator is allowed to return with a value, and the value is made available to the delegating generator. + While designed primarily for use in delegating to a subgenerator, the ``yield from`` expression actually allows delegation to arbitrary subiterators. +For simple iterators, ``yield from iterable`` is essentially just a shortened +form of ``for item in iterable: yield item``:: + + >>> def g(x): + ... yield from range(x, 0, -1) + ... yield from range(x) + ... + >>> list(g(5)) + [5, 4, 3, 2, 1, 0, 1, 2, 3, 4] + +However, unlike an ordinary loop, ``yield from`` allows subgenerators to +receive sent and thrown values directly from the calling scope, and +return a final value to the outer generator:: + + >>> def accumulate(start=0): + ... tally = start + ... while 1: + ... next = yield + ... if next is None: + ... return tally + ... tally += next + ... + >>> def gather_tallies(tallies, start=0): + ... while 1: + ... tally = yield from accumulate() + ... tallies.append(tally) + ... + >>> tallies = [] + >>> acc = gather_tallies(tallies) + >>> next(acc) # Ensure the accumulator is ready to accept values + >>> for i in range(10): + ... acc.send(i) + ... + >>> acc.send(None) # Finish the first tally + >>> for i in range(5): + ... acc.send(i) + ... + >>> acc.send(None) # Finish the second tally + >>> tallies + [45, 10] + +The main principle driving this change is to allow even generators that are +designed to be used with the ``send`` and ``throw`` methods to be split into +multiple subgenerators as easily as a single large function can be split into +multiple subfunctions. + (Implementation by Greg Ewing, integrated into 3.3 by Renaud Blanch, Ryan Kelly and Nick Coghlan, documentation by Zbigniew Jędrzejewski-Szmek and Nick Coghlan) @@ -327,6 +378,21 @@ suppressed valuable underlying details):: KeyError('x',) +PEP 414: Explicit Unicode literals +====================================== + +:pep:`414` - Explicit Unicode literals + PEP written by Armin Ronacher. + +To ease the transition from Python 2 for Unicode aware Python applications +that make heavy use of Unicode literals, Python 3.3 once again supports the +"``u``" prefix for string literals. This prefix has no semantic significance +in Python 3, it is provided solely to reduce the number of purely mechanical +changes in migrating to Python 3, making it easier for developers to focus on +the more significant semantic changes (such as the stricter default +separation of binary and text data). + + PEP 3155: Qualified name for classes and functions ================================================== @@ -408,10 +474,6 @@ Some smaller changes made to the core Python language are: (:issue:`12170`) -* Memoryview objects are now hashable when the underlying object is hashable. - - (Contributed by Antoine Pitrou in :issue:`13411`) - New and Improved Modules ======================== |