anomaly
Terry Reedy
tjreedy at udel.edu
Tue May 12 16:23:42 EDT 2015
On 5/12/2015 9:56 AM, Steven D'Aprano wrote:
> The consensus among the core developers is:
>
> * in general, the harm and inconvenience from accidentally
> shadowing built-ins is not great, and it usually easy to
> spot, debug and prevent;
>
> * when it comes to built-in functions (e.g. sum, map, pow)
> and types (e.g. int, str, list) there are significant and
> important use-cases for allowing shadowing;
>
> (e.g. the built-in sum function shouldn't prevent other
> modules from providing their own sum function)
>
> * but when it comes to None, True and False, there are no
> significant or important use-cases for shadowing (it is
> almost always a bug, not a feature, to redefine None).
>
> The general principle here is of consenting adults: Python allows you to
> shadow built-ins because sometimes it is useful, and the good outweighs the
> potential harm. There are a handful of exceptions to that general principle
> (e.g. None, True, False, I can't think of any others) because in those
> cases the harm (as tiny as it is) outweighs the good.
Having followed Python development for 18 years, I think this is a fair
summary.
--
Terry Jan Reedy
More information about the Python-list
mailing list