Axel Straschil wrote:

Hello!

I was fooling around with creating classes for a module with eval,
something like:

MyModule.py:

class Base:
        init(self, name):
                self._name = name

for myclass in ['A', 'B', 'C']:
        code="class %s(Base):\n\tinit(self, name='%s')\n\t\tsuper(%s,
        self).__init(name=name)\n"%dict(myclass, myclass.lower(), myclass())
        ... codeop and eval stuff ...
a=A()
print a

that gives: <class '__main__.A'>, but I want MyModule.A ;-)

Can someone give me a hint how to create classes in a module with eval
and codeop so that they exist like the code was written in?

Thanks, AXEL.

You could try just importing the module - then, when it runs, its name won't be "__main__" but "MyModule".

regards
 Steve
--
Meet the Python developers and your c.l.py favorites March 23-25
Come to PyCon DC 2005          http://www.python.org/pycon/2005/
Steve Holden                           http://www.holdenweb.com/
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to