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".
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