app engine的“memcache.get()”是否会返回引用或深层副本?
我问的原因是因为我想知道在修改对象后是否需要调用memcache.set()。
例如:
# INITALIZE
t_var = {}
t_var['foo'] = 1
memcache.set('some_key', t_var)
# LATER ON...
t_var = memcache.get('some_key')
t_var['foo'] = 2
# EVEN LATER ON...
t_var = memcache.get('some_key')
print t_var['foo']
print t-var['foo']
是显示'1'还是'2'?
答案 0 :(得分:8)
对象在被发送到pickle
之前被序列化(默认情况下使用memcached
)。因此,您获得的对象必然是副本。这是因为memcached
是一个与Python解释器不同的进程,而且对Python对象一无所知。