Мне нужно написать функцию, которая принимает 1 обязательный позиционный аргумент arg и несколько дополнительных аргументов.
Эти необязательные аргументы выглядят примерно так: x, y, axx, axy , эйх, эй. Но их можно передать тремя способами:
, y и еще 4 axx, axy, ayx, ayy - f(arg, x, y, axx, axy, ayx, ayy).
Таким образом, количество необязательных аргументов может быть только 0, 2 или 6. Я хочу вызвать TypeError, если эти необязательные аргументы не соответствуют схеме.
Я делаю что-то вроде этого, и это работает, но я не уверен, что это правильная практика:
Мне нужно написать функцию, которая принимает 1 обязательный позиционный аргумент arg и несколько дополнительных аргументов. Эти необязательные аргументы выглядят примерно так: x, y, axx, axy , эйх, эй. Но их можно передать тремя способами: [list] [*]none - f(arg); [*]только x и y - f(arg, x, y); или [*][code]x[/code] , y и еще 4 axx, axy, ayx, ayy - f(arg, x, y, axx, axy, ayx, ayy). [/list] Таким образом, количество необязательных аргументов может быть только 0, 2 или 6. Я хочу вызвать TypeError, если эти необязательные аргументы не соответствуют схеме. Я делаю что-то вроде этого, и это работает, но я не уверен, что это правильная практика: [code]def f(arg, *optionals): l = len(optionals) if not (l==0 or l==2 or l==6): raise TypeError('My message here') [/code] Как это сделать хорошо?