[Cython] PEP 3135 -- New Super
mark florisson
markflorisson88 at gmail.com
Tue Jul 12 12:11:00 CEST 2011
On 12 July 2011 11:46, Vitja Makarov <vitja.makarov at gmail.com> wrote:
> 2011/7/12 Stefan Behnel <stefan_ml at 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 at python.org
> http://mail.python.org/mailman/listinfo/cython-devel
>
More information about the cython-devel
mailing list