diff options
author | Zachary Ware <zachary.ware@gmail.com> | 2016-08-09 22:05:23 (GMT) |
---|---|---|
committer | Zachary Ware <zachary.ware@gmail.com> | 2016-08-09 22:05:23 (GMT) |
commit | f03f7c75d8257228a6c15d96600a6a223ee6cb43 (patch) | |
tree | ea24d9413c57a54dbb46c6a6f2675270edc47e8a /Doc/howto | |
parent | 1aa913e13417e05939db49421c77d232ee7a2b7f (diff) | |
parent | 378a1d77d9f257a914a35dbbfdf16bd8a8f3ef36 (diff) | |
download | cpython-f03f7c75d8257228a6c15d96600a6a223ee6cb43.zip cpython-f03f7c75d8257228a6c15d96600a6a223ee6cb43.tar.gz cpython-f03f7c75d8257228a6c15d96600a6a223ee6cb43.tar.bz2 |
Closes #27204: Merge with 3.5
Diffstat (limited to 'Doc/howto')
-rw-r--r-- | Doc/howto/functional.rst | 2 | ||||
-rw-r--r-- | Doc/howto/ipaddress.rst | 9 | ||||
-rw-r--r-- | Doc/howto/sorting.rst | 42 |
3 files changed, 29 insertions, 24 deletions
diff --git a/Doc/howto/functional.rst b/Doc/howto/functional.rst index 6e21f93..8ae9679 100644 --- a/Doc/howto/functional.rst +++ b/Doc/howto/functional.rst @@ -1040,7 +1040,7 @@ If you use :func:`operator.add` with :func:`functools.reduce`, you'll add up all elements of the iterable. This case is so common that there's a special built-in called :func:`sum` to compute it: - >>> import functools + >>> import functools, operator >>> functools.reduce(operator.add, [1,2,3,4], 0) 10 >>> sum([1,2,3,4]) diff --git a/Doc/howto/ipaddress.rst b/Doc/howto/ipaddress.rst index 5e0ff3e..452e367 100644 --- a/Doc/howto/ipaddress.rst +++ b/Doc/howto/ipaddress.rst @@ -1,3 +1,7 @@ +.. testsetup:: + + import ipaddress + .. _ipaddress-howto: *************************************** @@ -49,11 +53,6 @@ to use the :func:`ipaddress.ip_address` factory function, which automatically determines whether to create an IPv4 or IPv6 address based on the passed in value: -.. testsetup:: - >>> import ipaddress - -:: - >>> ipaddress.ip_address('192.0.2.1') IPv4Address('192.0.2.1') >>> ipaddress.ip_address('2001:DB8::1') diff --git a/Doc/howto/sorting.rst b/Doc/howto/sorting.rst index 0334b26..b90b61b 100644 --- a/Doc/howto/sorting.rst +++ b/Doc/howto/sorting.rst @@ -58,28 +58,28 @@ A common pattern is to sort complex objects using some of the object's indices as keys. For example: >>> student_tuples = [ - ('john', 'A', 15), - ('jane', 'B', 12), - ('dave', 'B', 10), - ] + ... ('john', 'A', 15), + ... ('jane', 'B', 12), + ... ('dave', 'B', 10), + ... ] >>> sorted(student_tuples, key=lambda student: student[2]) # sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] The same technique works for objects with named attributes. For example: >>> class Student: - def __init__(self, name, grade, age): - self.name = name - self.grade = grade - self.age = age - def __repr__(self): - return repr((self.name, self.grade, self.age)) + ... def __init__(self, name, grade, age): + ... self.name = name + ... self.grade = grade + ... self.age = age + ... def __repr__(self): + ... return repr((self.name, self.grade, self.age)) >>> student_objects = [ - Student('john', 'A', 15), - Student('jane', 'B', 12), - Student('dave', 'B', 10), - ] + ... Student('john', 'A', 15), + ... Student('jane', 'B', 12), + ... Student('dave', 'B', 10), + ... ] >>> sorted(student_objects, key=lambda student: student.age) # sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] @@ -208,15 +208,15 @@ return a negative value for less-than, return zero if they are equal, or return a positive value for greater-than. For example, we can do: >>> def numeric_compare(x, y): - return x - y - >>> sorted([5, 2, 4, 1, 3], cmp=numeric_compare) + ... return x - y + >>> sorted([5, 2, 4, 1, 3], cmp=numeric_compare) # doctest: +SKIP [1, 2, 3, 4, 5] Or you can reverse the order of comparison with: >>> def reverse_numeric(x, y): - return y - x - >>> sorted([5, 2, 4, 1, 3], cmp=reverse_numeric) + ... return y - x + >>> sorted([5, 2, 4, 1, 3], cmp=reverse_numeric) # doctest: +SKIP [5, 4, 3, 2, 1] When porting code from Python 2.x to 3.x, the situation can arise when you have @@ -244,6 +244,12 @@ function. The following wrapper makes that easy to do:: To convert to a key function, just wrap the old comparison function: +.. testsetup:: + + from functools import cmp_to_key + +.. doctest:: + >>> sorted([5, 2, 4, 1, 3], key=cmp_to_key(reverse_numeric)) [5, 4, 3, 2, 1] |