Accessing the __dict__ attribute of an object causes the dictionary to be materialized.
This has a negative impact on performance.
We should provide means to access the __dict__ without forcing materialization, which can be used in copy, pickle and any third party code that chooses to.
I propose two new methods on object:
__dict_copy__(self), which will be equivalent to self.__dict__.copy(), but without materializing the dictionary of objects with virtual dictionaries.
__dict_update__(self, arg), which will be equivalent to self.__dict__.update(arg), but without materializing the dictionary of objects with virtual dictionaries.
Linked PRs