У меня есть функция 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]