I'm uncomfortable with the __foo__ style proposed. Details and "what I would do" below. On 30Jul2010 12:06, Greg Ewing <greg.ewing@canterbury.ac.nz> wrote: | Mike Graham wrote: | >Since there isn't really any magic going on, why use a __foo__ name? | >The majority of __foo__ names are for things you shouldn't reference | >yourself | | To my mind, the main reason is to avoid name clashes. Protocol | methods often may need to be added to just about any class, | and using a __foo__ name greatly reduces the chance of it | coinciding with some pre-existing class-specific method. Might not the adder of a class specific method make the same argument? If they really want a class _specific_ method, ought thy not to be using the __foo style, thus avoiding clashes anyway? The __json__ name make me uncomfortable; to my mind __foo_ names belong to the language in order to implement/override stuff like [], not to a library hook. | Anyway, you don't call it yourself in this case either -- it's | called by the proposed json-serialising framework. I'm curious; what's the special benefit to JSON here? I don't mean JSON is unpopular or horrible, but I can see people going to a __xml__ hook for a proposed XML serialisation framework, and __sql__ for db storage, and ... I'm doing a little serialisation myself for another purpose. My code gets classes that want serialisation to register themselves with the serialisation module thus: # DB is a NodeDB instance, which can store various objects DB.register_type(class, tobytes, frombytes) where class is the class desiring special serialisation and tobytes and frombytes are callables; tobytes takes an instance of the class and returns the byte serialisation and frombytes does the reverse. No special names needed and no __foo__ special name reservation. Why wouldn't one just extend the json module with a "serialise this" and "unserialise this" type registry? Cheers, -- Cameron Simpson <cs@zip.com.au> DoD#743 http://www.cskk.ezoshosting.com/cs/ You can listen to what everybody says, but the fact remains that you've got to get out there and do the thing yourself. - Joan Sutherland