Re: When ‘super’ is not a good id ea
alex23 wrote: Jean-Michel Pichavant jeanmic...@sequans.com wrote: alex23 wrote: To me, the explicit reference to the base class violates DRY. It also means you need to manually change all such references should the base class ever change, something that using super() avoids. I found the correct answer (http://www.artima.com/weblogs/viewpost.jsp?thread=236275) I'm not entirely sure how an opinion + explanation of the underlying mechanics is more or less correct than a development principle... The correctness applies to my answer, not the super mechanism. The super mechanism is correct and properly documented since python 2.6, so anyone is free to use it. I'm just trying to give arguments in favor of using the explicit base class name instead of super. And in my opinion, explicit names are (slightly) better because there's no underlying explanation required when using the base class name instead of super. JM -- http://mail.python.org/mailman/listinfo/python-list
Re: When ‘super’ is not a good id ea
alex23 wrote: Jean-Michel Pichavant jeanmic...@sequans.com wrote: a possible answer: - explicit implicit I'm not sure this is the correct one though :) To me, the explicit reference to the base class violates DRY. It also means you need to manually change all such references should the base class ever change, something that using super() avoids. I found the correct answer (http://www.artima.com/weblogs/viewpost.jsp?thread=236275) super is perhaps the trickiest Python construct: this series aims to unveil its secrets Having established that super cannot return the mythical superclass, we may ask ourselves what the hell it is returning ;) The truth is that super returns proxy objects.Informally speaking, a proxy is an object with the ability to dispatch to methods of other objects via delegation. Technically, super is a class overriding the __getattribute__ method. Instances of super are proxy objects providing access to the methods in the MRO. Jean-Michel -- http://mail.python.org/mailman/listinfo/python-list