Раймонд Хеттингер уже отвечает на вопрос ОП.
Однако в моей группе возникли проблемы с читабельностью при использовании store_false. Особенно, когда новые члены присоединяются к нашей группе. Это связано с тем, что наиболее интуитивно понятно, что когда пользователь указывает аргумент, значение, соответствующее этому аргументу, будет равно True или 1.
Например, если код -
parser.add_argument('--stop_logging', action='store_false')
Считыватель кода может ожидать, что оператор ведения журнала будет отключен, если значение в stop_logging равно true. Но код, подобный следующему, приведет к напротив желаемого поведения -
if not stop_logging:
#log
С другой стороны, если интерфейс определен следующим образом, тогда оператор if работает и более интуитивно понятен -
parser.add_argument('--stop_logging', action='store_true')
if not stop_logging:
#log