]> granicus.if.org Git - python/commitdiff
Recorded merge of revisions 76886 via svnmerge from
authorGeorg Brandl <georg@python.org>
Sat, 19 Dec 2009 17:46:40 +0000 (17:46 +0000)
committerGeorg Brandl <georg@python.org>
Sat, 19 Dec 2009 17:46:40 +0000 (17:46 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76886 | georg.brandl | 2009-12-19 18:43:33 +0100 (Sa, 19 Dez 2009) | 1 line

  #7493: review of Design FAQ by Florent Xicluna.
........

Doc/faq/design.rst

index c5af2fd4c3d8df4f962e536a7181a263542ee755..9ec6cadac3c40090de958b909a2b0af4d62b6402 100644 (file)
@@ -234,8 +234,10 @@ code breakage.
 
 .. XXX talk about protocols?
 
-Note that for string operations Python has moved from external functions (the
-``string`` module) to methods.  However, ``len()`` is still a function.
+.. note::
+
+   For string operations, Python has moved from external functions (the
+   ``string`` module) to methods.  However, ``len()`` is still a function.
 
 
 Why is join() a string method instead of a list or tuple method?
@@ -306,14 +308,15 @@ expensive.  In versions of Python prior to 2.0 it was common to use this idiom::
 This only made sense when you expected the dict to have the key almost all the
 time.  If that wasn't the case, you coded it like this::
 
-   if dict.has_key(key):
+   if key in dict(key):
        value = dict[key]
    else:
        dict[key] = getvalue(key)
        value = dict[key]
 
-(In Python 2.0 and higher, you can code this as ``value = dict.setdefault(key,
-getvalue(key))``.)
+For this specific case, you could also use ``value = dict.setdefault(key,
+getvalue(key))``, but only if the ``getvalue()`` call is cheap enough because it
+is evaluated in all cases.
 
 
 Why isn't there a switch or case statement in Python?
@@ -750,7 +753,7 @@ requested again.  This is called "memoizing", and can be implemented like this::
 
    # Callers will never provide a third parameter for this function.
    def expensive (arg1, arg2, _cache={}):
-       if _cache.has_key((arg1, arg2)):
+       if (arg1, arg2) in _cache:
            return _cache[(arg1, arg2)]
 
        # Calculate the value