<div class="gmail_quote">On Fri, Feb 24, 2012 at 3:08 AM, Nick Coghlan <span dir="ltr"><<a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">On Fri, Feb 24, 2012 at 9:34 AM, Victor Stinner<br>
<<a href="mailto:victor.stinner@haypocalc.com">victor.stinner@haypocalc.com</a>> wrote:<br>
> Hi,<br>
><br>
> I'm trying to create read-only objects using a "frozendict" class.<br>
> frozendict is a read-only dict. I would like to use frozendict for the<br>
> class dict using a metaclass, but type.__new__() expects a dict and<br>
> creates a copy of the input dict.<br>
<br>
</div>Do you have a particular reason for doing it that way rather than just<br>
overriding __setattr__ and __delattr__ to raise TypeError?<br>
<br>
Or overriding the __dict__ descriptor to return a read-only proxy?<br>
<br>
There are a *lot* of direct calls to the PyDict APIs in the object<br>
machinery. Without benchmark results clearly showing a negligible<br>
speed impact, I'd be -1 on increasing the complexity of all that code<br>
(and making it slower) to support niche use cases that can already be<br>
handled a couple of other ways.<br>
<br>
Cheers,<br>
Nick.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Nick Coghlan   |   <a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>   |   Brisbane, Australia<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-ideas" target="_blank">http://mail.python.org/mailman/listinfo/python-ideas</a><br>
</div></div></blockquote></div><br><div>Can't this also be done using metaclasses?</div>