Is there a way to discover the potential keyword arguments for a function in python from the command line? without looking at the source or docs. Sometimes the source is to c lib even that isn't visible
Any way to find all possible kwargs for a function in python from cli?
Asked Answered
You can use the inspect
module. In 3.3+, this is easy by using inspect.signature
import inspect
def foo(bar=None, baz=None):
pass
>>> print(inspect.signature(foo))
(bar=None, baz=None)
Immediately underneath the linked doc is an example that pulls out only the names of the keyword-only arguments, which may be worth reading too!
Of course if you're looking to deep inspect the source code to try and find anything that is pulled out of a **kwargs
argument, you're probably out of luck. Something like:
def foo(**kwargs):
if kwargs.get("isawesome"):
print("Dang you're awesome")
>>> some_magic(foo)
isawesome
is probably going to be hard to find.
Note also that this won't work for all builtin functions written in C, which don't usually have named arguments at all: E.g., try
inspect.signature(sum)
and you'll get an error. –
Shire A good point! I don't know if there's any way to inspect the signature of a function that's not written in Python. –
Seema
For a function 'myfunc' use this:
myfunc.__code__.co_varnames
© 2022 - 2024 — McMap. All rights reserved.
help(whatever_function)
? – Fornof