I've been looking at the docstrings of the built-in types, and I found the docstring for dict.update() really hard to understand.
| update(...) | D.update(E, **F) -> None. Update D from E and F: for k in E: D[k] = E[k] | (if E has keys else: for (k, v) in E: D[k] = v) then: for k in F: D[k] = F[k] The parenthetical 'if E has keys' is the most unreadable part; it's actually referring to the keys() method. My proposed rewrite (as formatted by pydoc): | update(...) | D.update(E, **F) -> None. Update D from dict/iterable E and F. | If E has a .keys() method, does: for k in E: D[k] = E[k] | If E lacks .keys() method, does: for (k, v) in E: D[k] = v | In either case, this is followed by: for k in F: D[k] = F[k] Does this seem clear, or should it be expanded more? dict.update is pretty complicated! --amk _______________________________________________ Doc-SIG maillist - Doc-SIG@python.org http://mail.python.org/mailman/listinfo/doc-sig