Функция с фиксированным количеством необязательных параметровPython

Программы на Python
Ответить
Anonymous
 Функция с фиксированным количеством необязательных параметров

Сообщение Anonymous »

Мне нужно написать функцию, которая принимает 1 обязательный позиционный аргумент arg и несколько дополнительных аргументов.
Эти необязательные аргументы выглядят примерно так: x, y, axx, axy , эйх, эй. Но их можно передать тремя способами:
  • none - f(arg);
  • только x и y - f(arg, x, y); или
  • , y и еще 4 axx, axy, ayx, ayy - f(arg, x, y, axx, axy, ayx, ayy).
Таким образом, количество необязательных аргументов может быть только 0, 2 или 6. Я хочу вызвать TypeError, если эти необязательные аргументы не соответствуют схеме.
Я делаю что-то вроде этого, и это работает, но я не уверен, что это правильная практика:

Код: Выделить всё

def f(arg, *optionals):
l = len(optionals)
if not (l==0 or l==2 or l==6):
raise TypeError('My message here')
Как это сделать хорошо?

Подробнее здесь: https://stackoverflow.com/questions/791 ... parameters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»