Итак, я пишу функцию, которая принимает необязательный список и расширяет его до указанной длины. Вместо того, чтобы писать это как 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
Мне интересно, жестко ли это задано в диапазоне? Или это поведение можно эмулировать?