On 12 July 2011 11:46, Vitja Makarov <vitja.maka...@gmail.com> wrote: > 2011/7/12 Stefan Behnel <stefan...@behnel.de> >> >> Vitja Makarov, 12.07.2011 09:46: >>> >>> About cdef classes: probably it's better to >>> transform super().method(...) into direct form, e.g. BaseClass.method(self, >>> ...) >> >> Except when it doesn't work. ;) >> >> A >> / \ >> B C >> \ / >> D >> >> The MRO here is D-B-A-C. If C unconditionally calls A.method(), A's >> implementation will be called twice, as it was already called by B. >> >> http://www.python.org/download/releases/2.2/descrintro/#mro > > According to your link mro in the example is DBCA ;) > > Is that a problem for cdef classes? Cdef class have only one base, isn't it?
That is irrelevant, if B calls A's method then C's method will be skipped. If it would use super() it would call C's method, and C's method would call A's method. > -- > vitja. > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > http://mail.python.org/mailman/listinfo/cython-devel > _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel