kj wrote:
What's the word on using "classes as namespaces"?

My only concern would be that classes do magical things with certain
types when you retrieve them as attributes (e.g. functions, property
descriptors), so you can't use one as a completely general purpose
transparent container. But for enum constants and the like this
isn't a problem.

If you're up for a bit of hackery, the following code tricks the
class statement into producing a module instead of a class:

from types import ModuleType

class MetaNamespace(ModuleType):

  def __init__(self, name, bases, dict):
    ModuleType.__init__(self, name)
    self.__file__ = __file__
    self.__dict__.update(dict)

Namespace = MetaNamespace.__new__(MetaNamespace)

class Foo(Namespace):

  ford = 42
  arthur = 88

print Foo
print Foo.__dict__

--
Greg
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to