A RetroSearch Logo

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

Search Query:

Showing content from http://mail.python.org/pipermail/python-dev/2002-April/023458.html below:

[Python-Dev] LOAD_NAME & classes

[Python-Dev] LOAD_NAME & classesGuido van Rossum guido@python.org
Tue, 23 Apr 2002 10:16:37 -0400
> [Guido van Rossum]
> > We need more than a single example to decide which rules bites worse
> > for large programs.  Deep nesting is not common; long functions are.
> > And there the common annoyance is that a change in line 150 can break
> > the code in line 2 of the function.
> 
> I'm not exactly sure what you mean by this. Can you share an
> example? (Not necessarily 150+ lines long, of course.) Thanks.

It's a classic.  Before we had UnboundLocalError (i.e. in 1.5.2 and
before) this was a common problem on c.l.py:

    x = "a global"

    def f():
        print x # user thinks this should print the global
	# 2000 lines of unrelated code
	for x in "some sequence": # doesn't realize this overrides x
            do_something_with(x)

Calling f() would raise NameError: x, which caused lots of confusion.

We added UnboundLocalError th make it clearer what's going on (so at
least the experienced c.l.py users would know right away where the
problem was :-), but still requires you to know about something
obscure that's going on at compile time (the compiler scanning your
entire function for variable definitions).

--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