True inconsistency in Python

Terry Reedy tjreedy at
Wed Nov 19 01:50:49 CET 2003

"Ron Adam" <radam2 at> wrote in message
news:7rhjrvgefdpfkm15divsor9e3iktl0falh at
> On Mon, 17 Nov 2003 23:40:52 -0500, "Terry Reedy" <tjreedy at>
> wrote:
> >In 2.2.2+, you only need to not change them and to not work with a
> >psycopath.
> Many people are starting to learn programming with python as their
> first computer language.   I wouldn't refer to them as a psychopath.

Neither would I.  I was thinking of the following scenario.  You are
part of a programming group.  You write module ronad, to be imported
by danor written by 'Dan Oreo'.  Psycho writes unrelated module
'sneaky' with

import ronad
ronad.True, ronad.False = False, True

perhaps disguised.  You get blamed for the 'bug' that you did not
write and cannot find.

[Prohibiting this scenario (import module and mask builtins there in)
has been suggested.  I believe it was once approved and is still under
consideration but the change has the problem that there seem to be
legitimate uses.]

> They may one day write programs that save peoples lives.  They have
> start someplace.   Many people using python will not be professional
> programmers but enthusiast and hobbiests,  or web page programmers,
> or .....   in other words, a very large and diverse group.

People often post code redefining builtings like file and list, and
get reminders not to do so.  I cannot remember anyone accidentally
overwriting True or False.

> I'm not sure what your point is here,  but using PyChecker sounds
> a good suggestion.

That suggestion was my final point.  Ignore the warm-up pitch.

Terry J. Reedy

More information about the Python-list mailing list