On Jul 25, 2012, at 7:26 PM, Stephan Hügel wrote: > > # what do I have to do now to end up with instances Abc, Def, Ghi that I can > query within my app in the same way as Foo?
Let's use the right terminology, you mean "class". Abc, Def, Ghi are classes - the word "instance" implies you instantiated a class, that is, a "self" that is associated with that class. As far as Abc, Def, Ghi being just like Foo - the answer is, they are. In Python, everything is an object - modules, classes, instances of classes, names, are all accessible in the same way. Everything is passable as an argument to anything else, everything can be the value of an attribute somewhere else. There is no difference between all of these snippets below: # 1. class Foo(object): some_attribute = "some value" # 2. Foo = type("Foo", (object,), {"some_attribute":"some_value"}) # 3. def make_a_foo(somename): return type(somename, (object,), {"some_attribute":"some_value"}) Foo = make_a_foo("Foo") so to answer your question, it depends on how you're using this function of yours. If you have a data array of many anonymous classes, the answer is, "it depends". You need to access them somehow. If you had this: my_list_of_classes = make_classes(my_list_of_1000_names) you've got this use case where you have 1000 names to make into classes. Do you want to use them by name in a dynamic way ? OK, put them in a dict: my_dict = dict((c.__name__, c) for c in my_list_of_classes) session.query(my_dict["SomeName"]).all() do you want to import them from a module ? OK, then put them in the module: from myapp import somemodule for cls in my_list_of_classes: setattr(somemodule, cls.__name__, cls) # later from myapp.somemodule import Cls1234 session.query(Cls1234).all() In Python, classes are data and names are just ways to access that data, so you can organize this however you see fit. > > > -- -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.