]> granicus.if.org Git - python/commitdiff
Issue 10533: Need example of using __missing__.
authorRaymond Hettinger <python@rcn.com>
Sat, 8 Jan 2011 09:35:38 +0000 (09:35 +0000)
committerRaymond Hettinger <python@rcn.com>
Sat, 8 Jan 2011 09:35:38 +0000 (09:35 +0000)
Doc/library/stdtypes.rst

index be0c8d5c3d0237eaa120051db77d09ba68726217..be93ece3b0cc1d11db27f0a3ddc4b9f7e919e48a 100644 (file)
@@ -2117,8 +2117,20 @@ pairs within braces, for example: ``{'jack': 4098, 'sjoerd': 4127}`` or ``{4098:
       returned or raised by the ``__missing__(key)`` call if the key is not
       present. No other operations or methods invoke :meth:`__missing__`. If
       :meth:`__missing__` is not defined, :exc:`KeyError` is raised.
-      :meth:`__missing__` must be a method; it cannot be an instance variable. For
-      an example, see :class:`collections.defaultdict`.
+      :meth:`__missing__` must be a method; it cannot be an instance variable::
+
+          >>> class Counter(dict):
+          ...     def __missing__(self, key):
+          ...         return 0
+          >>> c = Counter()
+          >>> c['red']
+          0
+          >>> c['red'] += 1
+          >>> c['red']
+          1
+
+      See :class:`collections.Counter` for a complete implementation including
+      other methods helpful for accumulating and managing tallies.
 
    .. describe:: d[key] = value