mirror of
https://github.com/python/cpython.git
synced 2024-12-03 06:46:01 +08:00
bpo-34839: Add a 'before 3.6' in the section 'warnings' of doctest (GH-9736)
This commit is contained in:
parent
a5259fb05d
commit
0522fd81dc
@ -759,23 +759,27 @@ Warnings
|
||||
:mod:`doctest` is serious about requiring exact matches in expected output. If
|
||||
even a single character doesn't match, the test fails. This will probably
|
||||
surprise you a few times, as you learn exactly what Python does and doesn't
|
||||
guarantee about output. For example, when printing a dict, Python doesn't
|
||||
guarantee that the key-value pairs will be printed in any particular order, so a
|
||||
test like ::
|
||||
guarantee about output. For example, when printing a set, Python doesn't
|
||||
guarantee that the element is printed in any particular order, so a test like ::
|
||||
|
||||
>>> foo()
|
||||
{"Hermione": "hippogryph", "Harry": "broomstick"}
|
||||
{"Hermione", "Harry"}
|
||||
|
||||
is vulnerable! One workaround is to do ::
|
||||
|
||||
>>> foo() == {"Hermione": "hippogryph", "Harry": "broomstick"}
|
||||
>>> foo() == {"Hermione", "Harry"}
|
||||
True
|
||||
|
||||
instead. Another is to do ::
|
||||
|
||||
>>> d = sorted(foo().items())
|
||||
>>> d = sorted(foo())
|
||||
>>> d
|
||||
[('Harry', 'broomstick'), ('Hermione', 'hippogryph')]
|
||||
['Harry', 'Hermione']
|
||||
|
||||
.. note::
|
||||
|
||||
Before Python 3.6, when printing a dict, Python did not guarantee that
|
||||
the key-value pairs was printed in any particular order.
|
||||
|
||||
There are others, but you get the idea.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user