cpython: 352d075839f7 (original) (raw)

Mercurial > cpython

changeset 72808:352d075839f7

Closes #12192: Document that mutating list methods do not return the instance (original patch by Mike Hoy). [#12192]

Georg Brandl georg@python.org
date Sat, 08 Oct 2011 18:32:40 +0200
parents d4ce850b06b7
children ef1f0434c79c
files Doc/library/stdtypes.rst Doc/tutorial/datastructures.rst Objects/listobject.c
diffstat 3 files changed, 24 insertions(+), 12 deletions(-)[+] [-] Doc/library/stdtypes.rst 4 Doc/tutorial/datastructures.rst 24 Objects/listobject.c 8

line wrap: on

line diff

--- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -15,6 +15,10 @@ interpreter. The principal built-in types are numerics, sequences, mappings, classes, instances and exceptions. +Some collection classes are mutable. The methods that add, subtract, or +rearrange their members in place, and don't return a specific item, never return +the collection instance itself but None. + Some operations are supported by several object types; in particular, practically all objects can be compared, tested for truth value, and converted to a string (with the :func:repr function or the slightly different

--- a/Doc/tutorial/datastructures.rst +++ b/Doc/tutorial/datastructures.rst @@ -19,13 +19,13 @@ objects: .. method:: list.append(x) :noindex:

.. method:: list.extend(L) :noindex:

@@ -40,8 +40,8 @@ objects: .. method:: list.remove(x) :noindex:

.. method:: list.pop([i]) @@ -70,13 +70,14 @@ objects: .. method:: list.sort() :noindex:

.. method:: list.reverse() :noindex:

An example that uses most of the list methods:: @@ -99,6 +100,10 @@ An example that uses most of the list me >>> a [-1, 1, 66.25, 333, 333, 1234.5] +You might have noticed that methods like insert, remove or sort that +modify the list have no return value printed -- they return None. [1]_ This +is a design principle for all mutable data structures in Python. + .. tut-lists-as-stacks: @@ -438,7 +443,7 @@ using a non-existent key. Performing list(d.keys()) on a dictionary returns a list of all the keys used in the dictionary, in arbitrary order (if you want it sorted, just use -sorted(d.keys()) instead). [1] To check whether a single key is in the +sorted(d.keys()) instead). [2]_ To check whether a single key is in the dictionary, use the :keyword:in keyword. Here is a small example using a dictionary:: @@ -622,6 +627,9 @@ interpreter will raise a :exc:TypeError[](#l2.67) [](#l2.68) .. rubric:: Footnotes[](#l2.69) [](#l2.70) -.. [1] Calling ``d.keys()`` will return a :dfn:dictionary view` object. It +.. [1] Other languages may return the mutated object, which allows method

+ +.. [2] Calling d.keys() will return a :dfn:dictionary view object. It supports operations like membership test and iteration, but its contents are not independent of the original dictionary -- it is only a view.

--- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -2329,16 +2329,16 @@ PyDoc_STRVAR(clear_doc, PyDoc_STRVAR(copy_doc, "L.copy() -> list -- a shallow copy of L"); PyDoc_STRVAR(append_doc, -"L.append(object) -- append object to end"); +"L.append(object) -> None -- append object to end"); PyDoc_STRVAR(extend_doc, -"L.extend(iterable) -- extend list by appending elements from the iterable"); +"L.extend(iterable) -> None -- extend list by appending elements from the iterable"); PyDoc_STRVAR(insert_doc, "L.insert(index, object) -- insert object before index"); PyDoc_STRVAR(pop_doc, "L.pop([index]) -> item -- remove and return item at index (default last).\n" "Raises IndexError if list is empty or index is out of range."); PyDoc_STRVAR(remove_doc, -"L.remove(value) -- remove first occurrence of value.\n" +"L.remove(value) -> None -- remove first occurrence of value.\n" "Raises ValueError if the value is not present."); PyDoc_STRVAR(index_doc, "L.index(value, [start, [stop]]) -> integer -- return first index of value.\n" @@ -2348,7 +2348,7 @@ PyDoc_STRVAR(count_doc, PyDoc_STRVAR(reverse_doc, "L.reverse() -- reverse IN PLACE"); PyDoc_STRVAR(sort_doc, -"L.sort(key=None, reverse=False) -- stable sort IN PLACE"); +"L.sort(key=None, reverse=False) -> None -- stable sort IN PLACE"); static PyObject list_subscript(PyListObject, PyObject*);