On Tue, Mar 17, 2009 at 2:24 PM, Robert Kern <robert.k...@gmail.com> wrote: > On 2009-03-17 16:13, Paddy wrote: >> >> We the def statement and the lambda expression. We have the class >> statement, but is their an expression to create a class? >> >> Or: >> >>>>> def F(): pass >> >>>>> type(F) >> >> <type 'function'> >>>>> >>>>> # Is to: >>>>> F2 = lambda : none >>>>> type(F2) >> >> <type 'function'> >>>>> >>>>> # As >>>>> class O(object): pass >> >>>>> type(O) >> >> <type 'type'> >>>>> >>>>> # is to: >>>>> # ???? > > type('O', (object,), {})
Further detail from the docs (http://docs.python.org/library/functions.html): type(name, bases, dict) Return a new type object. This is essentially a dynamic form of the class statement. The name string is the class name and becomes the __name__ attribute; the bases tuple itemizes the base classes and becomes the __bases__ attribute; and the dict dictionary is the namespace containing definitions for class body and becomes the __dict__ attribute. For example, the following two statements create identical type objects: >>> class X(object): ... a = 1 ... >>> X = type('X', (object,), dict(a=1)) New in version 2.2. Cheers, Chris -- I have a blog: http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list