
That won't work with at least some builtins written in C, and maybe extension modules. I just checked 3.9 and str.count, and inspect.signature fails with ValueError: no signature found for builtin <method 'count' of 'str' objects>. I don't know if Argument Clinic (AC) would improve this, or maybe it's outside of what AC can help with. I've often wanted to call functions, including builtins, and say "just use the default", so I can see the need for a more reliable way of finding the defaults. Eric On 10/26/2020 5:25 AM, jan.thor@inter.de wrote:
I wouldn't call it tricky, it's actually quite straightforward:
import inspect
def extract_default(function, parameter): sig = inspect.signature(function) param = sig.parameters[parameter] return param.default
def do_something(count=5): print(count)
def do_something_twice(count=None): if count is None: count = extract_default(do_something, "count") do_something(count) do_something(count) _______________________________________________ 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/KVEGN4... Code of Conduct: http://python.org/psf/codeofconduct/