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