<div class="gmail_quote">On Thu, Jan 26, 2012 at 8:47 PM, Guido van Rossum <span dir="ltr"><<a href="mailto:guido@python.org">guido@python.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5">On Thu, Jan 26, 2012 at 9:25 AM, anatoly techtonik <<a href="mailto:techtonik@gmail.com">techtonik@gmail.com</a>> wrote:<br>
> I expected to find the answer to this question in FAQ, but because there is<br>
> no FAQ I ask it anyway.<br>
><br>
> How about adding a new standard dict-like container type that allows access<br>
> using . (dot) to its members instead of ['index']?<br>
> Why? It is convenient to write options.help instead of options['halp'] etc.<br>
><br>
> Example:<br>
>>>> mydict = container(someprop=somevalue)<br>
>>>> mydict['someprop']<br>
> somevalue<br>
>>>> mydict.someprop<br>
> somevalue<br>
>>>> mydict.otherprop<br>
> Exception KeyError ...<br>
><br>
> I know that it is easy to implement, but wouldn't it be nice to make it<br>
> available by default?<br>
> A side benefit of having this in stdlib is that newbies will be aware of the<br>
> behaviour of derived classes without having to understand the mechanics of<br>
> magic methods.<br>
<br>
</div></div>That is pretty much JavaScript's 'object', and I hate this ambiguity.<br>
If your keys are always constants, define a proper options class so<br>
you can say options.help instead of options['help']. You can also<br>
write a generic subclass of dict that works this way, if you really<br>
think you like it so much. But please keep it out of the stdlib. It<br>
leads to confused users, not happy users. An example of the problems<br>
that arise: If d['a'] == d.a, then how come d['clear'] != d.clear ?</blockquote><div><br></div><div>In which case d['clear'] != d.clear can be true?</div><div><br></div><div><br></div>I've found a MIT licensed library that implements just that:<div>

<a href="http://pypi.python.org/pypi/bunch/">http://pypi.python.org/pypi/bunch/</a></div><div><br></div><div>Q. Why it is better than subclass of object?</div><div>A. Because it is implicit.</div><div>-- </div>anatoly t.<br>

<div> </div></div>