Cannot get the value from dogpile.cache from different modules.

Peter Otten __peter__ at web.de
Tue Dec 29 14:11:17 EST 2015


xeon Mailinglist wrote:
> No, I cannot get a simpler example. The simpler example works, and in my
> code, it doesn't. 

Then you have to add/remove complexity until you find the problematic 
statements.
> I thought that it was something related to the variable
> `region`, but I declare it as global. 

The "global" statement tells a function that a name in the module namespace 
should be used even though there is an assignment to that name inside the 
function. Example:
_value = 0
def next_int():
 global _value
 _value += 1
 return _value
It is unlikely that this feature will affect your problem.
> So, I think that all the sets will
> go to the same variable.

You can add print statements to your getters/setters
>>> from dogpile.cache import make_region
>>> region = make_region()
>>> region.configure("dogpile.cache.memory")
<dogpile.cache.region.CacheRegion object at 0x7f61f60cafd0>
>>> region.backend
<dogpile.cache.backends.memory.MemoryBackend object at 0x7f61f5e3e110>
to see if the object IDs are the same (I bet they aren't).
Another shot in the dark: an unobvious source of running code twice is when 
you import (directly or indirectly) the main script:
$ cat demo.py
import demo
print "demo"
$ python demo.py 
demo
demo


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /