Реализация функции range в Python
Всем известно про range() в python. Работал с аргументами и задался вопросом: Как в python удается так организовать передачу аргументов в функцию так, что если передать аргументы таким образом: (start, stop), где start и stop некоторые значения, что все передастся нормально, а если таким: (start) то функция range воспримет ее как stop. Можно ли реализовать подобный функционал в python и если да, то как?