谷歌应用引擎“memcache.get()”是否返回引用或深层副本?

时间:2012-04-18 20:31:12

标签: python google-app-engine memcached

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'?

1 个答案:

答案 0 :(得分:8)

对象在被发送到pickle之前被序列化(默认情况下使用memcached)。因此,您获得的对象必然是副本。这是因为memcached是一个与Python解释器不同的进程,而且对Python对象一无所知。