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