У меня есть функция Python, которая принимает несколько аргументов. Некоторые из этих аргументов могут быть опущены в некоторых сценариях.
def some_function (self, a, b, c, d = None, e = None, f = None, g = None, h = None):
    #code
Аргументы d через h - это строки, каждая из которых имеет разные значения. Важно, чтобы я мог выбирать, какие дополнительные параметры должны передаваться в любой комбинации. Например, (a, b, C, d, e) или (a, b, C, g, h), или (a, b, C, d, e, f, или все из них (это мои варианты).
Было бы здорово, если бы я мог перегрузить функцию, но я читал, что Python не поддерживает перегрузку. Я попытался вставить некоторые из необходимых аргументов int в список - и получил ошибку несоответствия аргумента.
Сейчас я отправляю пустые строки вместо первых нескольких отсутствующих аргументов в качестве заполнителей. Я хотел бы иметь возможность вызвать функцию, используя только фактические значения.
Есть ли способ сделать это? Могу ли я передать список вместо списка аргументов?
Теперь прототип с использованием ctypes выглядит примерно так:
_fdll.some_function.argtypes = [c_void_p, c_char_p, c_int, c_char_p, c_char_p, c_char_p, c_char_p, c_char_p]
