En Wed, 03 Jun 2009 10:20:35 -0300, Brian Allen Vanderburg II
<brianvanderbu...@aim.com> escribió:
Gabriel Genellina wrote:
En Tue, 02 Jun 2009 19:02:47 -0300, Brian Allen Vanderburg II
<brianvanderbu...@aim.com> escribió:
What is the best way to copy an object that has multiple inheritance
with the copy module. Particularly, some of the instances in the
hierarchy
use the __copy__ method to create a copy (because even for shallow
copies they need some information updated a little differently)
I do control the classes involved. A problem I was having, but I think
I now got solved, is if using super, the copy would not have the same
class type.
Normally, one would use type(self)(...init arguments...) to create an
instance of the same type. But if the __init__ signature may change, use
type(self).__new__(type(self)) to bypass __init__ (should not matter in
this case).
Also, a problem was if using super, but some class in the hierarchy
didn't implement __copy__, then it's data would not be copied at all.
This was also fixed by copying the entire __dict__ in the base
__copy__. This is an idea of what I got, it seems to be working fine:
Looks fine. See also a very recent thread about __deepcopy__ for another
generic version.
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list