Итак, я пишу функцию, которая принимает необязательный список и расширяет его до указанной длины.Вместо того, чтобы писать это как foo (n, list = None), мне было интересно, как я могу эмулировать поведение функции диапазона Python, которая работает следующим образом:
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(5, 10)
[5, 6, 7, 8, 9]
То есть с параметром по умолчанию первым.Для справки, попытка наивно настроить это возвращает синтаксическую ошибку:
def foo(x=10, y):
return x + y
SyntaxError: non-default argument follows default argument
Так что мне интересно, это жестко закодировано в диапазоне?Или это поведение можно подражать?