how to create/ref globals in an alternate namespace?

Steven W. Orr steveo at syslang.net
Fri Apr 27 16:46:24 EDT 2007


I have two seperate modules doing factory stuff which each have the 
similar function2:

In the ds101 module, 
def DS101CLASS(mname,data):
     cname = mname+'DS101'
     msg_class = globals()[cname]
     msg = msg_class(data)
     return msg

and in the fdu module,

def FDUCLASS(mname,data):
     cname = mname+'FDU'
     msg_class = globals()[cname]
     msg = msg_class(data)
     return msg

I was thinking I'd be clever and create a common function:
def procCLASS(mname, objname, data):
     cname = mname+objname
     msg_class = globals()[cname]
     msg = msg_class(data)
     return msg

but the call to globals fouls it all up. Is there a way to write it so 
that the call to globals can be parameterized to be in the context of a 
specific module?

Also, I need to go the other way, a la,
         globals()[name] = nclass

Is this doable?

TIA

-- 
Time flies like the wind. Fruit flies like a banana. Stranger things have  .0.
happened but none stranger than this. Does your driver's license say Organ ..0
Donor?Black holes are where God divided by zero. Listen to me! We are all- 000
individuals! What if this weren't a hypothetical question?
steveo at syslang.net



More information about the Python-list mailing list