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

("...some of the classes in...", I presume?)

use the __copy__ method to create a copy (because even for shallow copies they need some information updated a little differently), so how can I make sure all the information is copied as it is supposed to be even for the base classes that have special requirements.

If you don't control all the clases involved, there is little hope for a method like __copy__ to work at all... All classes must be written with cooperation in mind, using super() the "right" way. See "Python's Super Considered Harmful" [1] and "Things to Know About Python Super" [2][3][4]

That said, and since multiple inheritance is the heart of the problem, maybe you can redesign your solution *without* using MI? Perhaps using delegation instead?

[1] http://fuhm.net/super-harmful/
[2] http://www.artima.com/weblogs/viewpost.jsp?thread=236275
[3] http://www.artima.com/weblogs/viewpost.jsp?thread=236278
[4] http://www.artima.com/weblogs/viewpost.jsp?thread=237121

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to