Easycli
Что такое sys.argv и argparse?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
sys.argv — список аргументов командной строки (argv[0] — имя скрипта). Простое, но без parsing/validation. argparse — мощный парсер CLI с авто-generated --help.
import argparse
parser = argparse.ArgumentParser(description='My tool')
parser.add_argument('-n', '--name', required=True, help='Your name')
parser.add_argument('--count', type=int, default=1)
parser.add_argument('--verbose', action='store_true')
parser.add_argument('files', nargs='+') # positional, один или больше
args = parser.parse_args()
print(args.name, args.count, args.verbose, args.files)- Возможности: positional/optional, types, default, required, choices, action (
store_true,count,append), nargs (?,*,+), subcommands, mutually exclusive groups; - click (3rd party) — decorators для команд; typer — click + type hints;
- Избегать ручного парсинга
sys.argvв нетривиальном CLI.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.