On Thursday 31 March 2016 13:45, Paul Rubin wrote: > Steven D'Aprano <st...@pearwood.info> writes: >> I want to see an actual application where adding a new key to a .................^^^^^^^^^^^^^^^^^^^^^
>> mapping is expected to change the other keys. > directory["mary.roommate"] = "bob" > directory["mary.address"] = None # unknown address > ... > directory["bob.address"] = "132 Elm Street" > > Since Bob and Mary are roommates, they have the same address, so the > application might want to update both addresses once it learns one of > them. I think I've used that application! It was a nightmare... I had to move house seven times before I stopped getting my ex-roomate Stinky Joe's electricity bill sent to me. Nah, only kidding. I've never seen such an application, and I don't believe it exists. By your use of the word "might", I'm guessing that you've made it up. But even if you didn't, it's still a lousy design. Just because Mary and Bob are roommates *now* doesn't mean that they are joined at the hips like Siamese twins and are roommates forever. If Mary relocates, the application shouldn't automatically relocate Bob as well. And even if the application does, for some strange reason, this logic should be built into the *application itself*, not into dict. By all means subclass dict and make your own fancy mapping type that has all sorts of application- specific smarts (or dumbs, as the case may be). Just don't expect it in the standard dict. -- Steve -- https://mail.python.org/mailman/listinfo/python-list