Big problem fetching members from dynamically loaded module

Philippe C. Martin philippe at philippecmartin.com
Sat Jun 25 21:59:25 CEST 2005


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