[Python-checkins] cpython: Factor out shared variables.

raymond.hettinger python-checkins at python.org
Sun Apr 29 23:57:23 CEST 2012


http://hg.python.org/cpython/rev/2adcd28a5a3a
changeset:   76649:2adcd28a5a3a
parent:      76643:399cb1afb747
user:        Raymond Hettinger <python at rcn.com>
date:        Sun Apr 29 14:55:27 2012 -0700
summary:
  Factor out shared variables.

files:
  Lib/functools.py |  10 ++++++----
  1 files changed, 6 insertions(+), 4 deletions(-)


diff --git a/Lib/functools.py b/Lib/functools.py
--- a/Lib/functools.py
+++ b/Lib/functools.py
@@ -167,18 +167,20 @@
     # The internals of the lru_cache are encapsulated for thread safety and
     # to allow the implementation to change (including a possible C version).
 
+    # Constants shared by all lru cache instances:
+    kwd_mark = (object(),)   # separate positional and keyword args
+    sentinel = object()      # unique object used to signal cache misses
+    _len = len               # localize the global len() function
+    PREV, NEXT, KEY, RESULT = 0, 1, 2, 3   # names for the link fields
+
     def decorating_function(user_function):
 
         cache = {}
         hits = misses = 0
-        kwd_mark = (object(),)   # separate positional and keyword args
         cache_get = cache.get    # bound method to lookup a key or return None
-        sentinel = object()      # unique object used with cache_get
-        _len = len               # localize the global len() function
         lock = Lock()            # because linkedlist updates aren't threadsafe
         root = []                # root of the circular doubly linked list
         root[:] = [root, root, None, None]     # initialize by pointing to self
-        PREV, NEXT, KEY, RESULT = 0, 1, 2, 3   # names for the link fields
 
         def make_key(args, kwds, typed, tuple=tuple, sorted=sorted, type=type):
             # build a cache key from positional and keyword args

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list