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 подскажет развёрнутый ответ в реальном времени.