diff options
author | Georg Brandl <georg@python.org> | 2009-12-19 17:46:40 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2009-12-19 17:46:40 (GMT) |
commit | bfe95ac098ba37243df068a473c090e2935f26ff (patch) | |
tree | a777e6c4bb71e95a4d1344b5617c6abae263fb94 /Doc | |
parent | 4d345ce1c9115cd4e8a731c19576eae27b341bb4 (diff) | |
download | cpython-bfe95ac098ba37243df068a473c090e2935f26ff.zip cpython-bfe95ac098ba37243df068a473c090e2935f26ff.tar.gz cpython-bfe95ac098ba37243df068a473c090e2935f26ff.tar.bz2 |
Recorded merge of revisions 76886 via svnmerge from
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.
........
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/faq/design.rst | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Doc/faq/design.rst b/Doc/faq/design.rst index c5af2fd..9ec6cad 100644 --- a/Doc/faq/design.rst +++ b/Doc/faq/design.rst @@ -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 |