Nathan Pinno wrote:

> It's a warning that says:
>
> Can only use * in top level or something like that.
>
> It's kind of annoying

why?  importing tons of unknown stuff into a local namespace is
rather silly, and makes it impossible for the compiler to properly
analyze your code -- which means that you cannot use nested
scoping.  the language reference says:

    The from form with "*" may only occur in a module scope.
    If the wild card form of import -- "import *" -- is used in a
    function and the function contains or is a nested block with
    free variables, the compiler will raise a SyntaxError.

future versions of Python will most likely issue a SyntaxError also
for "import *" in non-nested functions.

> but the program still ran after I made the import * lines top level,
> and removed the def's.

moving the "import *" line to the module scope would have been
enough; functions can refer to module-level variables just fine.

you might wish to read up on Python scoping rules:

    http://docs.python.org/ref/naming.html

</F> 



-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to