A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2003-February/032701.html below:

[Python-Dev] Python roadmap

[Python-Dev] Python roadmapGuido van Rossum guido@python.org
Sat, 01 Feb 2003 13:33:41 -0500
> BTW, is there any way in Python to make it issue warnings when 
> built-in names are assigned new values? This could be very
> useful mode for Python beginners who tend to rebind max, min,
> list, etc?

It is sort of against the rules of the language -- the whole point of
scoping is that you should be able to define variables even if they
block a builtin (that you may never have heard of and don't need) from
view.

But it would be a great feature of PyChecker (for all I know, it
already does this).

There's one situation where I actually *do* think this is worth a
warning, or perhaps even an error.  When you import a module and
assign to an attribute of it that didn't exist before and has the name
of a built-in, you may change that module's meaning.  If this wasn't
allowed, an optimizer could know that a particular reference to 'len'
must really reference the built-in len() function, and could generate
in-line code to invoke PyObject_Size() rather than to look up the
built-in len and invoke it.  This would also allow much more efficient
execution of

  for i in range(1000000): ...

if there is no known global named range.

--Guido van Rossum (home page: http://www.python.org/~guido/)



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4