Use the inspect module from Python's standard library (the cleanest, most solid way to perform introspection).
Specifically, inspect.getargspec(f)
returns the names and default values of f
's arguments -- if you only want the names and don't care about special forms *a
, **k
,
import inspect
def magical_way(f):
return inspect.getargspec(f)[0]
completely meets your expressed requirements.