Alex Martelli <aleax at aleax.it> wrote in message news:<5SR0b.21604$zN5.668541 at news1.tin.it>...
Nick Keighley wrote:
thamks all for help and suggestions.
I'm a Python beginner and I'm would like to write a function that
returns a class (perhaps a tad ambitious...). I've looked through
the FAQ and perused "Python In A Nutshell" (not a good book to
start with?). The only example I found in PiaN used a simple
If you're an experienced programmer with other languages then
the Nutshell should be helpful -- if you're a newbie to programming,
you should start with easier books (but with the kind of tasks
you're setting yourself I guess you aren't).
no, not a programming beginner. A Python beginner. I was specifically
trying to do something that was hard (impossible) to do in "normal"
language (eg. C). The idea was try and generate types (ie. classes)
that had a
limited set of values. I'd found the C enum emulators in


but they didn't quite do what I wanted.
[...] I didn't particularly
emphasize metaprogramming in the Nutshell -- it's more of a "gee
whiz" kind of thing and the Nutshell aims to cover solid, everyday,
bread-and-butter usage.
if statement to return one of a selection of pre-existing classes.
I'd like to generate a class on-the-fly from a parameter (a dictionary).
How do you want to use that dict -- as the class's dict? Then either:

def makeaclass(fromdict):
class X: pass
X.__dict__ = fromdict
return X


def makeaclass(fromdict):
class X: pass
return X

might be helpful.

Can Python do this sort of stuff? Does the mean I have to mess with
the dreaded meta-classes?
Metaclasses may be easier to use than sufficiently-general class-building
functions, actually -- no reason to dread them. But anyway, yes, Python
IS pretty good at metaprogramming, too, both with and without metaclasses.

Nick Keighley

Search Discussions

Discussion Posts


Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 7 of 7 | next ›
Discussion Overview
grouppython-list @
postedAug 20, '03 at 8:15a
activeAug 22, '03 at 12:07p



site design / logo © 2022 Grokbase