On Fri, 26 Sep 2008 22:15:43 -0700, Aahz wrote: > In article <[EMAIL PROTECTED]>, > Steven D'Aprano <[EMAIL PROTECTED]> wrote: >>On Thu, 25 Sep 2008 21:17:14 -0700, Aahz wrote: >>> >>> Seems to me that if all the module is used for is to store state, >>> you're wasting a file on disk. I personally prefer to use a class >>> singleton. >> >>I don't recognise the term "class singleton". Can you explain please? >>How is it different from an ordinary singleton? > > An ordinary singleton is instantiating the class multiple times yet > returning the same instance object; a class singleton is simply using > the class directly (like a module).
Amazing. That's *exactly* what I was thinking of when I first asked my question. Since I now no longer think I need such a beast, this is just academic curiosity, but given a class singleton, I'd like to be able to call it as if it were a function. Normally calling a class object returns an instance -- I wish to return something else. Is that just a matter of overriding __new__? This seems to works: >>> class ClassSingleton(object): ... thing = (0, 1, 2) ... def __new__(cls, *args): ... return len(args+cls.thing) ... >>> ClassSingleton(1, 2, 4, 8, 16) 8 Is it really that easy? -- Steven -- http://mail.python.org/mailman/listinfo/python-list