On 07/10/2013 05:16 PM, eryksun wrote:
On Wed, Jul 10, 2013 at 3:57 PM, Dave Angel <da...@davea.name> wrote:

Sure enough it did. The question is - does importing into a function
ever make sense? It  occurred to me that if you use    from module
import * , putting it in a function

Can't be done.  Locals of a function are all known at compile time.

That depends. 2.x issues a warning and disables optimization, so the
function's locals use a dict:

     >>> from inspect import CO_OPTIMIZED
     >>> def f(): from Tkinter import *
     ...
     <stdin>:1: SyntaxWarning: import * only allowed at module level
     >>> f.__code__.co_flags & CO_OPTIMIZED
     0

I'm not saying this is a good idea. It isn't compatible with 3.x, you
lose the ability to create a closure (i.e. a nested function with free
variables), you lose the efficiency of the fast locals array, and
every call has to create and update a locals dict.


All good points. But Jim Mooney is running Python 3.3, as evidenced by the location he gives for the interpreter.



--
DaveA

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to