argparse のコンストラクターの引数 usage について

Usage を指定しない場合

プログラム

コンストラクターの引数 usage を指定しないプログラムです.これが通常です.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('a')
args = parser.parse_args()

print(args.a)

ヘルプの表示

ヘルプを表示させます.

$ python3 echo.py -h
usage: echo.py [-h] a

positional arguments:
  a

optional arguments:
  -h, --help  show this help message and exit

まともなヘルプになっています.

usage を指定

プログラム

コンストラクターの引数 usage を指定したプログラムです.

import argparse

parser = argparse.ArgumentParser(usage='return string')
parser.add_argument('a')
args = parser.parse_args()

print(args.a)

ヘルプの表示

ヘルプを表示させます.

$ python3 echo.py -h
usage: return string

positional arguments:
  a

optional arguments:
  -h, --help  show this help message and exit

使用方法 (usage) が引数で与えられた文字列になっています.ヘルプとしては,不適切です.