У меня есть функция 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< /code> или все (это мой выбор).
Было бы здорово, если бы я мог перегрузить функцию, но я читал, что 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]
Подробнее здесь: https://stackoverflow.com/questions/953 ... -arguments
Как определить функцию с необязательными аргументами? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение