On Sat, 05 Feb 2005 02:38:13 -0500, Leif K-Brooks <[EMAIL PROTECTED]> wrote: > Actually, in Python, class definitions are runtime executable statements > just like any other. You can do this: > > >>> def make_class(with_spam=True): > ... if with_spam: > ... class TheClass(object): > ... def dostuff(self): > ... print 'Spam, spam, spam, spam!' > ... else: > ... class TheClass(object): > ... def dostuff(self): > ... print "I don't like spam!" > ... return TheClass
The real power of the class statement is that you can code it this way: class TheClass(object): if with_spam: def dostuff(self): print 'Spam, spam, spam, spam!' else: def dostuff(self): print "I don't like spam!" Instead of creating two classes in separate branches of the if statement, you can as well use the if inside the class statement. It's perfectly valid. Of course, one still has to feed it with the 'with_spam' argument - but if 'with_spam' is a global, or if the class statement wrapped inside a function that defines 'with_spam', it will work just as fine. -- Carlos Ribeiro Consultoria em Projetos blog: http://rascunhosrotos.blogspot.com blog: http://pythonnotes.blogspot.com mail: [EMAIL PROTECTED] mail: [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list