В Python я понимаю, что аргументы по умолчанию выводятся в конце и что аргументы, отличные от значения по умолчанию, не могут следовать аргументу по умолчанию. Это нормально. Как например:
>>> def foo(x=0, y):
return x, y
SyntaxError: non-default argument follows default argument
Это нормально, как ожидалось.
Однако, как насчет того случая, когда я хочу, чтобы первый аргумент был по умолчанию? Как, например, как видно из приведенного выше кода, x
должен быть первым аргументом и должен иметь значение по умолчанию 0.
Можно ли это сделать? Я спрашиваю, потому что даже в функции range
я предполагаю, что это что-то вроде этого:
def range(start=0, end):
pass
Итак, как это делается, и если это невозможно, как это реализовано range
? Обратите внимание, что я настаиваю на том, чтобы первый аргумент был по умолчанию, вот и вся цель. Я использую range
в качестве примера, потому что он идеально подходит для моей проблемы. Конечно, можно было бы реализовать range
как def range(end, start=0)
, но это не так.