[Tutor] Re: compute class name
Emile van Sebille
emile@fenx.com
Thu Oct 31 20:19:01 2002
Ulrich Wisser:
> I would like to create new object instances, but compute the
> class name. Simple example
>
#----test1.py----
class Test:
pass
if __name__ == '__main__':
name = 'Test'
t = globals()[name]()
print t
# now import this module
import test1
t1 = test1.__dict__[name]()
print t1
#---end---
Another thing you could try is directly using a dict:
class OptA:pass
class OptB:pass
class OptC:pass
class OptD:pass
opts = {'OptA':OptA, 'OptB':OptB, 'OptC':OptC, 'OptD':OptD,}
import random
thisclass = random.choice(opts.keys())
ineeda = opts[thisclass]()
print thisclass, ineeda
HTH,
--
Emile van Sebille
emile@fenx.com
---------