Aaron Brady <castiro...@gmail.com> wrote: > On Jan 18, 9:52 am, David Pratt <fairwinds...@gmail.com> wrote: >> Hi list. I use 'type' to generate classes but have a need to order >> the attributes for the generated class. Of course a dict is not going >> to maintain ordering. Is there any way to dynamically generate a >> class with attributes in specific order? >> >> my_new_class = type( 'MyNewClass', tuple_of_bases, dict_of_attributes) >> >> Many thanks, >> David > > Just a thought, you can subclass 'dict' and assign an instance of it > to the __dict__ member of your new instance. > You can certainly pass a subclass of 'dict' to type(), in fact in Python 3.0 you can use a metaclass with a __prepare__ method to substitute your own value for __dict__ in any class definition, but I don't think your own type will preserved when the instance is actually constructed.
A simple solution which works in any version of Python is just to maintain an attribute with the desired ordering and override __dir__ to return the attributes in that order. -- http://mail.python.org/mailman/listinfo/python-list