I spotted un undocumented term here : https://docs.python.org/3.5/library/functions.html#vars in: "Objects such as modules and instances have an updateable __dict__ attribute; however, other objects may have write restrictions on their __dict__ attributes (for example, classes use a dictproxy to prevent direct dictionary updates)." The term "dictproxy" is not documented anywhere in the documentation, I assume it's a https://docs.python.org/3.4/library/types.html#types.MappingProxyType, which is right: >>> class Foo(): ... pass ... >>> vars(Foo) mappingproxy({'__doc__': None, '__weakref__': <attribute '__weakref__' of 'Foo' objects>, '__dict__': <attribute '__dict__' of 'Foo' objects>, '__module__': '__main__'}) So I propose a patch to link to it via a :class:`dictproxy <types.MappingProxyType>`. Should we leave "dictproxy" or change it to "mappingproxy" ?
In Python 2, the class was called “dictproxy”, the repr() used “dict_proxy” with an underscore, and it is exposed as types.DictProxyType. So I guess that is where the term comes from. In Python 3.3, Issue 14386 renamed the class and repr() to “mappingproxy”, and re-introduced it to types as MappingProxyType. (DictProxyType was previously removed in revision 15649aef2db5.) So in Python 3 I would probably change it from “dictproxy” to a types.MappingProxyType link.