On 12/29/2009 3:01 PM, Миклухо wrote:
On 28 дек, 18:29, "Martin v. Loewis"<mar...@v.loewis.de>  wrote:
In this case (you just started to learn Python), I recommend to take
an explicit approach. Create a dictionary that maps class names to
classes:

name2class = { "MyObject" : MyObject,
                "MyOtherObject" : MyOtherObject,
                "Etc" : Etc }

Then, when you receive the string class_name, you do

o = name2class[class_name]
o.myfunction()

HTH,
Martin

Thanks for reply, but it doesn't fit to my task. If I will add later
other objects(and it will be very often) - I should stop the service,
but that would be very bad.

you don't need to stop any service; just add into the dictionary:
name2class['NewObject'] = NewObject

I'm not sure, if this is solution, but test passed:

myimportmod = __import__('ClassName', globals(), locals(),
['ClassName'], -1)
mod = getattr(_myimportmod, 'ClassName')
o = mod();
o.myfunction();

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to