I like the idea of having a fully qualified name that "works" (can be resolved).
I don't think that repr() should change, right? Can this change break the backward compatibility somehow? Victor Le 11 janv. 2018 21:00, "Serhiy Storchaka" <storch...@gmail.com> a écrit : > Currently the classes of functions (implemented in Python and builtin), > methods, and different type of descriptors, generators, etc have the > __module__ attribute equal to "builtins" and the name that can't be used > for accessing the class. > > >>> def f(): pass > ... > >>> type(f) > <class 'function'> > >>> type(f).__module__ > 'builtins' > >>> type(f).__name__ > 'function' > >>> type(f).__qualname__ > 'function' > >>> import builtins > >>> builtins.function > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > AttributeError: module 'builtins' has no attribute 'function' > > But most of this classes (if not all) are exposed in the types module. > > I suggest to rename them. Make the __module__ attribute equal to > "builtins" and the __name__ and the __qualname__ attributes equal to the > name used for accessing the class in the types module. > > This would allow to pickle references to these types. Currently this isn't > possible. > > >>> pickle.dumps(types.FunctionType) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > _pickle.PicklingError: Can't pickle <class 'function'>: attribute lookup > function on builtins failed > > And this will help to implement the pickle support of dynamic functions > etc. Currently the third-party library that implements this needs to use a > special purposed factory function (not compatible with other similar > libraries) since types.FunctionType isn't pickleable. > > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/