At some point, D-Man <[EMAIL PROTECTED]> wrote: > On Thu, Apr 19, 2001 at 12:17:40PM +0200, Florian Weimer wrote: > | Gregor Hoffleit <[EMAIL PROTECTED]> writes: > | > | [Python warning messages] > | > | > Could you mail an example of such a message ? > | > | y = None > | def fun(): > | y = None > | def bar(): > | y > | bar() > | > | fun() > | > | results in: > | > | <file>:2: SyntaxWarning: local name 'y' in 'fun' shadows use of 'y' as > global in nested scope 'bar' > | def fun(): > > Yeah, that code will almost certainly break in 2.2 when nested scopes > become mandatory. It may have been intended, but assignment to a > local variable overshadowing a global is rarely the intended effect. >
Just to make it clearer -- the warning is *not* because of the global y. The minimalist version is def fun(): y = None def bar(): y <file>:1: SyntaxWarning: local name 'y' in 'fun' shadows use of 'y' as global in nested scope 'bar' Also, it's a syntax warning, so it's caught at compile time -- any scripts where this occurs will be caught before they run, making it trivial to figure out where the problems are. > Anyways, if you want to get rid of those message now, without changing > the code use the -W option to the interpreter. Example : > > $ python -W ignore Scope.py > > (I created a file called Scope.py with that code in it) > A quick examination of the package lists show ~39 'python-*' packages that don't have equivalent 'python2-*' packages. There are about ~100 packages that depend on python-base that would have to be checked for compatibility with Python 2.1. I think it's safe to say that wholesale use of 'python -W ignore' would be unwarranted, because a lot of other stuff has to checked any way ;-) -- |>|\/|< /--------------------------------------------------------------------------\ |David M. Cooke |[EMAIL PROTECTED]