[python] How to get method parameter names?

Here is another way to get the function parameters without using any module.

def get_parameters(func):
    keys = func.__code__.co_varnames[:func.__code__.co_argcount][::-1]
    sorter = {j: i for i, j in enumerate(keys[::-1])} 
    values = func.__defaults__[::-1]
    kwargs = {i: j for i, j in zip(keys, values)}
    sorted_args = tuple(
        sorted([i for i in keys if i not in kwargs], key=sorter.get)
    )
    sorted_kwargs = {
        i: kwargs[i] for i in sorted(kwargs.keys(), key=sorter.get)
    }   
    return sorted_args, sorted_kwargs


def f(a, b, c="hello", d="world"): var = a
    

print(get_parameters(f))

Output:

(('a', 'b'), {'c': 'hello', 'd': 'world'})

Examples related to python

programming a servo thru a barometer Is there a way to view two blocks of code from the same file simultaneously in Sublime Text? python variable NameError Why my regexp for hyphenated words doesn't work? Comparing a variable with a string python not working when redirecting from bash script is it possible to add colors to python output? Get Public URL for File - Google Cloud Storage - App Engine (Python) Real time face detection OpenCV, Python xlrd.biffh.XLRDError: Excel xlsx file; not supported Could not load dynamic library 'cudart64_101.dll' on tensorflow CPU-only installation

Examples related to decorator

Experimental decorators warning in TypeScript compilation How does the @property decorator work in Python? Calling class staticmethod within the class body? Creating a singleton in Python Decorators with parameters? Python decorators in classes Is there a decorator to simply cache function return values? How to make function decorators and chain them together? How to decorate a class? What does functools.wraps do?

Examples related to introspection

Using isKindOfClass with Swift Get all object attributes in Python? Determine function name from within that function (without using traceback) Ruby: kind_of? vs. instance_of? vs. is_a? Get model's fields in Django How to get the caller's method name in the called method? How to get the name of the current method from code How can I get the name of an object in Python? How do I look inside a Python object? How do I access properties of a javascript object if I don't know the names?

Examples related to python-datamodel

Getting the class name of an instance? How to get method parameter names? Is there a built-in function to print all the current properties and values of an object? What are metaclasses in Python?