升级 optparse 代码

最初, argparse module had attempted to maintain compatibility with optparse . However, optparse was difficult to extend transparently, particularly with the changes required to support nargs= specifiers and better usage messages. When most everything in optparse had either been copy-pasted over or monkey-patched, it no longer seemed practical to try to maintain the backwards compatibility.

The argparse module improves on the optparse module in a number of ways including:

  • 处理位置自变量。

  • Supporting subcommands.

  • Allowing alternative option prefixes like + and / .

  • Handling zero-or-more and one-or-more style arguments.

  • Producing more informative usage messages.

  • Providing a much simpler interface for custom type and action .

A partial upgrade path from optparse to argparse :