On 9/23/2010 8:26 AM Pete said...
Hiya,

still working on my plugin architecture. I figured out how to import modules of 
which I don't know the name yet at compile time,
by using __import__() instead of import.

So that works fine when I want to have the equivalent of

import spam

... by using

__import__('spam')

Question:

what is the equivalent of

from spam import *

Something you probably really don't want to do as it will pollute your namespace. But, if you insist, you could play with:

ActivePython 2.6.1.1 (ActiveState Software Inc.) based on
Python 2.6.1 (r261:67515, Dec  5 2008, 13:58:38)
[MSC v.1500 32 bit (Intel)] on win32
>>> xx = __import__('httplib')
>>> dir(xx)
['ACCEPTED', 'BAD_GATEWAY', ...]

>>> for ii in dir(xx): globals()[ii] = xx.__dict__[ii]
...
>>> dir()
['ACCEPTED', 'BAD_GATEWAY', ...]
>>>

Note, this really is for consenting adults only, and changing globals() is not really supported and may change in the future. Note that from the docs, globals() is defined to "Return a dictionary representing the current global symbol table" and not as "Return the dictionary holding the current global symbol table" so the fact that it works on may version (and perhaps all others) doesn't mean it'll work everywhere.

HTH,

Emile









































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

Reply via email to