Python: как получить количество аргументов функции

Чтобы получить количество аргументов функции в Python, вы можете использовать различные методы. Вот несколько подходов:

Метод 1: Inspect.signature

import inspect
def get_num_arguments(func):
    sig = inspect.signature(func)
    return len(sig.parameters)
# Example usage
def my_function(arg1, arg2, arg3):
    pass
num_args = get_num_arguments(my_function)
print(num_args)  # Output: 3

Метод 2: func.code.co_argcount

def get_num_arguments(func):
    return func.__code__.co_argcount
# Example usage
def my_function(arg1, arg2, arg3):
    pass
num_args = get_num_arguments(my_function)
print(num_args)  # Output: 3

Метод 3: Inspect.getargspec (устарел, начиная с Python 3.0)

import inspect
def get_num_arguments(func):
    argspec = inspect.getargspec(func)
    return len(argspec.args)
# Example usage
def my_function(arg1, arg2, arg3):
    pass
num_args = get_num_arguments(my_function)
print(num_args)  # Output: 3

Метод 4: Inspect.signature (Python 3.3+)

import inspect
def get_num_arguments(func):
    sig = inspect.signature(func)
    return len(sig.parameters)
# Example usage
def my_function(arg1, arg2, arg3):
    pass
num_args = get_num_arguments(my_function)
print(num_args)  # Output: 3