Commit b2b41e1a authored by Fred Drake's avatar Fred Drake

Revise cheeseshop example so that the order of the keyword output is

completely determined by the example; dict insertion order and the string
hash algorithm no longer affect the output.
This fixes SF bug #509281.
parent 1f0cdab7
...@@ -1485,7 +1485,9 @@ def cheeseshop(kind, *arguments, **keywords): ...@@ -1485,7 +1485,9 @@ def cheeseshop(kind, *arguments, **keywords):
print "-- I'm sorry, we're all out of", kind print "-- I'm sorry, we're all out of", kind
for arg in arguments: print arg for arg in arguments: print arg
print '-'*40 print '-'*40
for kw in keywords.keys(): print kw, ':', keywords[kw] keys = keywords.keys()
keys.sort()
for kw in keys: print kw, ':', keywords[kw]
\end{verbatim} \end{verbatim}
It could be called like this: It could be called like this:
...@@ -1511,6 +1513,11 @@ shopkeeper : Michael Palin ...@@ -1511,6 +1513,11 @@ shopkeeper : Michael Palin
sketch : Cheese Shop Sketch sketch : Cheese Shop Sketch
\end{verbatim} \end{verbatim}
Note that the \method{sort()} method of the list of keyword argument
names is called before printing the contents of the \code{keywords}
dictionary; if this is not done, the order in which the arguments are
printed is undefined.
\subsection{Arbitrary Argument Lists \label{arbitraryArgs}} \subsection{Arbitrary Argument Lists \label{arbitraryArgs}}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment