Это специально связано с API-интерфейсом Memcache для Google App Engine, но я уверен, что он также относится к другим инструментам Memcache.Что делать, если я хочу сохранить значение None в memcache?
Словарь .get() метод позволяет указать значение по умолчанию, такие как dict.get («ключ», «») defaultval
Это может быть полезно, если это возможно, вы можете захотеть, чтобы сохранить None как значение в словаре.
Однако memcache.get() не позволяет вам это делать. Я изменил мой @memoize декоратор так это выглядит следующим образом:
def memoize(keyformat, time=1000000):
"""Decorator to memoize functions using memcache."""
def decorator(fxn):
def wrapper(*args, **kwargs):
key = keyformat + str(args[1:]) + str(kwargs)
from google.appengine.api import memcache
data = memcache.get(key)
if Debug(): return fxn(*args, **kwargs)
if data:
if data is 'None': data = None
return data
data = fxn(*args, **kwargs)
if data is None: data = 'None'
memcache.set(key, data, time)
return data
return wrapper
return decorator
Теперь я уверен, что есть хороший аргумент, что я не должен хранить значения None, в первую очередь, но давайте, что в стороне Теперь. Есть ли лучший способ, с помощью которого я могу справиться с этим, помимо преобразования ников в строки и обратно?
Я думаю, что это лучший подход. Это дает вам дозорное значение, которое нельзя путать ни для чего другого. –
Вот что я в итоге сделал. Благодаря! – jamtoday