empty classes as c structs?
Leif K-Brooks
eurleif at ecritters.biz
Sat Feb 5 02:38:13 EST 2005
Alan McIntyre wrote:
> You could do something like this:
>
> blah = type('Struct', (), {})()
> blah.some_field = x
>
> I think I'd only do this if I needed to construct objects at runtime
> based on information that I don't have at compile time, since the two
> lines of code for your empty class would probably be more recognizable
> to more people.
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
...
>>> make_class(True)().dostuff()
Spam, spam, spam, spam!
>>> make_class(False)().dostuff()
I don't like spam!
And this:
>>> class Foo(object):
... num = 3
... for _ in xrange(14):
... num *= 1.22
...
>>> Foo.num
48.546607267977542
More information about the Python-list
mailing list