
+0 Questions: 1. What's the use case for partial having __name__? 2. Does this imply it should have __qualname__ as well? 3. What name would be given to (an inherently anonymous) lambda? Notes: 1. I would prefer __name__ to be more qualifying like its repr (e.g. partial(foo, "x") → "<partial foo>") On Mon, 2022-08-29 at 21:31 -0700, Charles Machalow wrote:
Hey folks,
I propose adding __name__ to functools.partial.
get_name = functools.partial(input, "name: ") get_name() name: hi 'hi' get_name.__name__ Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'functools.partial' object has no attribute '__name__' get_name.func <built-in function input> get_name.func.__name__ 'input'
We could set __name__ based off of partial.func.__name__ or we could try to set it to something like 'partial calling func.__name__'
If the callable doesn't have a name, we could fall back to a None __name__ or set it to something generic.
Even lambdas have __name__ set:
l = lambda: input('name: ') l.__name__ '<lambda>'
This proposal makes __name__ on partial objects more useful than the current behavior of __name__ on lambda objects as well. We could port over similar functionality to lambda if we'd like.
- Charlie Scott Machalow _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/WK3FO3... Code of Conduct: http://python.org/psf/codeofconduct/