> On Mar 24, 2018, at 7:18 AM, Tin Tvrtković <tinchester at gmail.com> wrote: > > it's faster to do this: > > self.__dict__ = {'a': a, 'b': b, 'c': c} > > i.e. to replace the instance dictionary altogether. On PyPy, their core devs inform me this is a bad idea because the instance dictionary is special there, so we won't be doing this on PyPy. > > But is it safe to do on CPython? This should work. I've seen it done in other production tools without any ill effect. The dict can be replaced during __init__() and still get benefits of key-sharing. That benefit is lost only when the instance dict keys are modified downstream from __init__(). So, from a dict size point of view, your optimization is fine. Still, you should look at whether this would affect static type checkers, lint tools, and other tooling. Raymond
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