A Single Instance of an Object?

dn PythonList at DancesWithMice.info
Mon Mar 11 17:03:01 EDT 2024


Good question Rambius!

On 12/03/24 09:53, Ivan "Rambius" Ivanov via Python-list wrote:
> Hello,
> 
> I am refactoring some code and I would like to get rid of a global
> variable. Here is the outline:
> 
> import subprocess
> 
> CACHE = {}

First thought: don't reinvent-the-wheel, use lru_cache 
(https://docs.python.org/3/library/functools.html)


> The global cache variable made unit testing of the lookup(key) method
> clumsy, because I have to clean it after each unit test. I refactored
> it as:
> 
> class Lookup:
>      def __init__(self):
>          self.cache = {}
> 

Change "cache" to be a class-attribute (it is currently an instance.

Then, code AFTER the definition of Lookup can refer to Lookup.cache, 
regardless of instantiation, and code within Lookup can refer to 
self.cache as-is...


-- 
Regards,
=dn


More information about the Python-list mailing list