Я хотел бы знать, может ли кто-нибудь сказать мне, как функция диапазона может принимать либо: один аргумент, range(stop)
, либо range(start, stop)
, или range(start, stop, step)
. Использует ли аргумент variadic
, например *arg
, для сбора аргументов, а затем использует ряд операторов if для назначения правильных значений в зависимости от количества предоставленных аргументов? По существу, range()
указывает, что если есть один аргумент, то он устанавливается как аргумент stop, или если есть два, то они start
и stop
, или если их три, то они устанавливают такие как stop
, start
и step
соответственно? Я хотел бы знать, как это можно было бы сделать, если бы кто-то написал диапазон в чистом Cpython. Спасибо!!!
Обновление: Я не уточнил, когда я изначально задал вопрос, что хотел узнать ответ на Cpython. Независимо благодарю вас за все ваши ответы! Я нашел их достаточно просвещенными. Это обратная связь, которая заставляет меня любить stackoverflow и людей, которые делают его настолько особенным!