summaryrefslogtreecommitdiffstats
path: root/Doc/library
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2011-06-01 23:18:00 (GMT)
committerRaymond Hettinger <python@rcn.com>2011-06-01 23:18:00 (GMT)
commit0f6a7323d38af2c478896072a1edd6a3b88bf02e (patch)
tree8d8207b53b0dffcb825b5b3d844425d33395b4b6 /Doc/library
parent5da37be7f25f07a48229dd1d409447c3ffbf3952 (diff)
parent9028928156b187eb0d684233960c568b46f11088 (diff)
downloadcpython-0f6a7323d38af2c478896072a1edd6a3b88bf02e.zip
cpython-0f6a7323d38af2c478896072a1edd6a3b88bf02e.tar.gz
cpython-0f6a7323d38af2c478896072a1edd6a3b88bf02e.tar.bz2
merge
Diffstat (limited to 'Doc/library')
-rw-r--r--Doc/library/functions.rst54
1 files changed, 32 insertions, 22 deletions
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 134c19c..1c1c167 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -290,19 +290,18 @@ are always available. They are listed here in alphabetical order.
The resulting list is sorted alphabetically. For example:
>>> import struct
- >>> dir() # doctest: +SKIP
+ >>> dir() # show the names in the module namespace
['__builtins__', '__doc__', '__name__', 'struct']
- >>> dir(struct) # doctest: +NORMALIZE_WHITESPACE
+ >>> dir(struct) # show the names in the struct module
['Struct', '__builtins__', '__doc__', '__file__', '__name__',
'__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
'unpack', 'unpack_from']
- >>> class Foo:
- ... def __dir__(self):
- ... return ["kan", "ga", "roo"]
- ...
- >>> f = Foo()
- >>> dir(f)
- ['ga', 'kan', 'roo']
+ >>> class Shape(object):
+ def __dir__(self):
+ return ['area', 'perimeter', 'location']
+ >>> s = Shape()
+ >>> dir(s)
+ ['area', 'perimeter', 'location']
.. note::
@@ -333,15 +332,21 @@ are always available. They are listed here in alphabetical order.
:meth:`__next__` method of the iterator returned by :func:`enumerate` returns a
tuple containing a count (from *start* which defaults to 0) and the
corresponding value obtained from iterating over *iterable*.
- :func:`enumerate` is useful for obtaining an indexed series: ``(0, seq[0])``,
- ``(1, seq[1])``, ``(2, seq[2])``, .... For example:
- >>> for i, season in enumerate(['Spring', 'Summer', 'Fall', 'Winter']):
- ... print(i, season)
- 0 Spring
- 1 Summer
- 2 Fall
- 3 Winter
+ >>> for i, season in enumerate('Spring Summer Fall Winter'.split(), start=1):
+ print(i, season)
+ 1 Spring
+ 2 Summer
+ 3 Fall
+ 4 Winter
+
+ Equivalent to::
+
+ def enumerate(sequence, start=0):
+ n = start
+ for elem in sequence:
+ yield n, elem
+ n += 1
.. function:: eval(expression, globals=None, locals=None)
@@ -652,10 +657,10 @@ are always available. They are listed here in alphabetical order.
One useful application of the second form of :func:`iter` is to read lines of
a file until a certain line is reached. The following example reads a file
- until ``"STOP"`` is reached: ::
+ until the :meth:`readline` method returns an empty string::
- with open("mydata.txt") as fp:
- for line in iter(fp.readline, "STOP"):
+ with open('mydata.txt') as fp:
+ for line in iter(fp.readline, ''):
process_line(line)
@@ -1169,8 +1174,9 @@ are always available. They are listed here in alphabetical order.
It can be called either on the class (such as ``C.f()``) or on an instance (such
as ``C().f()``). The instance is ignored except for its class.
- Static methods in Python are similar to those found in Java or C++. For a more
- advanced concept, see :func:`classmethod` in this section.
+ Static methods in Python are similar to those found in Java or C++. Also see
+ :func:`classmethod` for a variant that is useful for creating alternate class
+ constructors.
For more information on static methods, consult the documentation on the
standard type hierarchy in :ref:`types`.
@@ -1270,6 +1276,10 @@ are always available. They are listed here in alphabetical order.
references. The zero argument form automatically searches the stack frame
for the class (``__class__``) and the first argument.
+ For practical suggestions on how to design cooperative classes using
+ :func:`super`, see `guide to using super()
+ <http://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_.
+
.. function:: tuple([iterable])