Функция диапазона в python3 принимает три аргумента, две из которых являются необязательными. Итак, список аргументов выглядит так:
[start], stop, [step]
поэтому это означает (исправьте меня, если я ошибаюсь) есть необязательный аргумент перед необязательным аргументом. Но если я попытаюсь определить такую функцию, я получаю следующее:
>>> def foo(a = 1, b, c = 2):
print(a, b, c)
SyntaxError: non-default argument follows default argument
- это то, что я не могу сделать как "нормальный" пользователь python, или могу как-то определить такую функцию? Конечно, я мог бы сделать что-то вроде
def foo(a, b = None, c = 2):
if not b:
b = a
a = 1
но, например, функция справки затем покажет странную информацию. Поэтому я действительно хочу знать, возможно ли это определить функцию, описанную выше (первая).