diff --git a/pixelocr/utils.py b/pixelocr/utils.py index 239f10e..0253761 100644 --- a/pixelocr/utils.py +++ b/pixelocr/utils.py @@ -23,11 +23,14 @@ from threading import Lock def cached_property(fun): """A memoize decorator for class properties.""" lock = Lock() - locks = defaultdict(Lock) @functools.wraps(fun) def get(self): with lock: - obj_lock = locks[self, fun] + try: + obj_locks = self._locks + except AttributeError: + obj_locks = self._locks = defaultdict(Lock) + obj_lock = obj_locks[fun] with obj_lock: try: cache = self._cache