Overriding a global

Joshua Landau joshua.landau.ws at gmail.com
Tue Dec 13 14:43:54 EST 2011


On 13 December 2011 19:34, Ian Kelly <ian.g.kelly at gmail.com> wrote:

> On Tue, Dec 13, 2011 at 1:34 AM, Joshua Landau
> <joshua.landau.ws at gmail.com> wrote:
> >> No, there is another difference, the reason for rebinding the name.
> >> In a subclass, you would rebind a class attribute because that
> >> particular attribute, which you need to change, is used and expected
> >> by external code, either in the base class or in code that uses its
> >> API (or both).  Local variables in functions, on the other hand, are
> >> not externally visible, so there is no need to do this in order to
> >> conform to the expectations of external code.  All it does in that
> >> case is to sow potential confusion.
> >>
> > So you're saying you should never extend methods or attributes that
> > aren't meant to be used as part of of the API? Because I can claim
> > guilty on this point.
>
> No, I'm only saying that replacing attributes in subclasses is
> accepted because it is necessary due to external dependencies, and
> that local variables in functions don't have that excuse.
>

But they aren't needed due to external dependencies if they're
implementation-specific and not part of the API, no?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20111213/81154221/attachment-0001.html>


More information about the Python-list mailing list