jfj: > In the case of Parent diamond inheritance, super() can avoid calling > the __init__ of parent twice? How?
Guido has a nice description of it: http://www.python.org/2.2.3/descrintro.html#cooperation. It linearizes the graph. Unfortunately, this means that super delegates to siblings. This makes super incompatible with differences in positional arguments within a class hierarchy. If you want a super that works with positional arguments, please see delegate.py at http://ziyang.ece.northwestern.edu/~dickrp/python/delegate.html (also in PyPI). If others don't find problems with the approach, I hope it becomes standard. I found it distracting that python's default argument passing approach conflicts with its default delegation approach. Good luck, -Robert Dick- -- http://mail.python.org/mailman/listinfo/python-list