wcc schrieb: > Hello, > > How do I create a class using a variable as the class name? > > For example, in the code below, I'd like replace the line > > class TestClass(object): > with something like > class eval(className) (object): > > Is it possible? Thanks for your help. > > className = "TestClass" > > class TestClass(object): > def __init__(self): > print "Creating object of TestClass..." > > def method1(self): > print "This is a method." > > if __name__ == "__main__": > o = TestClass() > o.method1() > > -- > wcc >
You call 'type' to create a new-style class. The signature is: "type(name, bases, dict) -> a new type". >>> def __init__(self): ... print "Creating object of TestClass..." ... >>> def method1(self): ... print "This is a method" ... >>> TestClass = type("TestClass", (), {"__init__": __init__, "method1": >>> method1}) >>> >>> >>> help(TestClass) Help on class TestClass in module __main__: class TestClass(__builtin__.object) | Methods defined here: | | __init__(self) | | method1(self) | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __dict__ = <dictproxy object> | dictionary for instance variables (if defined) | | __weakref__ = <attribute '__weakref__' of 'TestClass' objects> | list of weak references to the object (if defined) >>> TestClass() Creating object of TestClass... <__main__.TestClass object at 0x00AED0B0> >>> TestClass().method1() Creating object of TestClass... This is a method >>> Thomas -- http://mail.python.org/mailman/listinfo/python-list