On 13 December 2011 19:34, Ian Kelly <ian.g.ke...@gmail.com> wrote: > On Tue, Dec 13, 2011 at 1:34 AM, Joshua Landau > <joshua.landau...@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?
-- http://mail.python.org/mailman/listinfo/python-list