Big problem fetching members from dynamically loaded module

Philippe C. Martin philippe at philippecmartin.com
Sat Jun 25 16:26:57 EDT 2005


I meant live, not leave ! (this is getting pretty bad)


Philippe C. Martin wrote:

> OK Peter, first of all thanks.
> 
> You seem to be German and although I leave in the states, I'm French and
> your english is clearly far more advanced than mine: I have yet to
> understand a few of your comments ;-)
> 
>> Care to provide the traceback?
> 
> Traceback (most recent call last):
>   File "SC_Shell.py", line 1095, in ?
>     l_d = SC_Shell()
>   File "SC_Shell.py", line 326, in __init__
>     self.__Make_Menu_Area()
>   File "SC_Shell.py", line 828, in __Make_Menu_Area
>     l = inspect.getmembers(eval(c))
>   File "<string>", line 0, in ?
> NameError: name 'BC' is not defined
> 
>> What happened in lines 1 through 22? My guess would be
> just import inspect
> 
> 
> and after that .... QUID ?
> 
> Thanks and regards,
> 
> Philippe
> 
> 
> 
> 
> 
> Peter Otten wrote:
> 
>> Philippe C. Martin wrote:
>> 
>>> l = inspect.getmembers(eval('BC')) #THIS CRASHES - the class exists
>> 
>> Care to provide the traceback?
>> 
>>> In [23]:from SC.CARDS.BC import *
>>> 
>>> In [24]:l = inspect.getmembers(eval('BC'))
>> 
>> What happened in lines 1 through 22? My guess would be
>> 
>> In [13]:from SC.CARDS import *
>> 
>> Be that as is may, eval("BC") can be simplified to BC,
>> 
>> from module import *
>> 
>> is the last roadhouse en route to chaos and an unqualified
>> 
>> try ... except
>> 
>> shows you are willing to drive with defunct brakes. By introducing exec
>> and eval() you are throwing the steering wheel out of the window.
>> 
>> Seriously, try to make do with __import__() and getattr() to clean up
>> your code a bit.
>> 
>> Driving-analogies-well-beyond-the-abyss-ly yours
>> Peter




More information about the Python-list mailing list