On Thu, 06 Nov 2008 23:59:51 -0800, yoma wrote:
> import copy
>
> class A:
> i = 1
>
> class B:
> a = A()
>
>
> b = B()
>
> x=copy.copy(b)
>
> y=copy.deepcopy(b)
>
> print id(x.a), id(b.a)
>
> print id(y.a), id(y.a)
>
> the result:
> 14505264 14505264
> 14505264 14505264
>
> So maybe i have a wrong understand to deep copy and shallow copy or it
> is a bug ?
Additionally to Chris' explanation: You will get the same `id()` for
every "copy" of a 1 in CPython. Numbers are immutable so the CPython
implementation caches small integers as an optimization.
Ciao,
Marc 'BlackJack' Rintsch
--
http://mail.python.org/mailman/listinfo/python-list