A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2016-June/145394.html below:

[Python-Dev] Why are class dictionaries not accessible?

[Python-Dev] Why are class dictionaries not accessible?Guido van Rossum guido at python.org
Thu Jun 23 11:19:44 EDT 2016
On Thu, Jun 23, 2016 at 8:01 AM, Random832 <random832 at fastmail.com> wrote:

> On Wed, Jun 22, 2016, at 11:11, Guido van Rossum wrote:
> > This is done in order to force all mutations of the class dict to go
> > through attribute assignments on the class. The latter takes care of
> > updating the class struct, e.g. if you were to add an `__add__` method
> > dynamically it would update tp_as_number->nb_add. If you could modify the
> > dict object directly it would be more difficult to arrange for this side
> > effect.
>
> Why is this different from the fact that updating a normal object's dict
> bypasses descriptors and any special logic in __setattr__? Dunder
> methods are already "special" in the sense that you can't use them as
> object attributes; I wouldn't be surprised by "assigning a dunder method
> via the class's dict breaks things".
>

It was a long time when I wrote this, but IIRC the breakage could express
itself as a segfault or other C-level crash due to some internal state
invariant of the type object being violated, not just an exception. The
existence of ctypes notwithstanding, we take C-level crashes very seriously.

-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20160623/900098e1/attachment-0001.html>
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4