擅长:python、mysql、java
<p>是的。<code>copy.copy</code>是浅层的,所以它只是复制对memoizing包装器对象的引用。如果删除<code>memoized</code>的<code>__get__</code>方法,可以这样尝试(否则,您将得到一个用于支持绑定方法的<code>partial</code>对象):</p>
<pre><code>class C(object):
@memoized
def foo(): pass
o1 = C()
o2 = copy.copy(o1)
print o1.foo.cache is o2.foo.cache
</code></pre>
<p>您可以在需要时(即复制时)构造一个新的包装器:<code>memoized(C.foo.func)</code>。在</p>