使用action=’store_true’或action=’store_false’传递参数时,根据参数是否设置默认值,可以分为以下两种情况:

  1. 设置了默认值时,如
    parser.add_argument('--resize', action='store_true', default=True, help='resize images')
    • 运行时如果不指定该参数(–resize),则该参数为默认值;如果指定了,则该参数为默认值取反。
    • 对于上述例子有:
      • python test.py -> resize为True
      • python test.py –resize -> resize为False
  2. 没有设置默认值时,如
    parser.add_argument('--resize', action='store_false', help='resize images')
    • 如果是store_false,则默认值是True。需手动指定该参数,该参数才为False。
    • 如果是store_true,则默认值是False。需手动指定该参数,该参数才为True。
    • 对于上述例子有:
      • python test.py -> resize为True
      • python test.py –resize -> resize为False

总的来说,可以理解为default的优先级更高,有default就看default。

再举一个例子练习一下:

parser.add_argument('--resize', action='store_true', help='resize images')
  • python test.py –resize -> resize为True
  • python test.py -> resize为False