In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] (Aahz) wrote: > One cute reason to prefer class singletons to module singletons is that > subclassing works well for creating multiple singletons. But really, > the main reason I use class singletons is that they are the absolute > simplest way to get attribute access: > > class Foo: pass > Foo.bar = 'xyz' > if data == Foo.bar: > print "!"
I've often done something similar, creating a dummy class: class Data: pass just so I could create instances of it to hang attributes off of: foo = Data() foo.bar = 'xyz' That's a trick I've been using since the Old Days (i.e. before new-style classes came along). When I saw your example, my first thought was "That's silly, now that there's new-style classes, you can just create an instance of object!". Unfortunately, when I tried it, I discovered it didn't work. You *can* instantiate object, but you don't get a class instance, so you can't create attributes on it. >>> x = object() >>> type(x) <type 'object'> >>> x.foo = 1 Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'object' object has no attribute 'foo' -- http://mail.python.org/mailman/listinfo/python-list