Вы можете сделать это так:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a',
action='store_const',
const=1234,
dest='port')
parser.add_argument('-b',
action='store_true',
dest='port_override')
args = parser.parse_args()
if args.port_override:
args.port = 2215
print(args.port)
Это говорит argparse
, что если указано -a
, то значение 1234
будет сохранено в args.port
. Также, если указано -b
, то args.port_override
будет True
. После разбора аргумента мы можем проверить значение args.port_override
.
Вы тоже можете сделать это:
parser.add_argument('-b',
action='store_const',
const=2215
dest='port')
В этом случае, в зависимости от того, что наступит вторым, приоритет отменит другой.