這裏是一個簡單的例子。設置默認值與argparse和相同的目標屬性
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a', action = 'append_const', dest = 'letter', const = 'a')
parser.add_argument('-b', action = 'append_const', dest = 'letter', const = 'b')
parser.set_defaults(letter = ['a', 'b'])
print(parser.parse_args('-a'.split()))
print(parser.parse_args('-b'.split()))
print(parser.parse_args(''.split()))
結果:
Namespace(letter=['a', 'b', 'a'])
Namespace(letter=['a', 'b', 'b'])
Namespace(letter=['a', 'b'])
沒有set_defaults線,結果是:
Namespace(letter=['a'])
Namespace(letter=['b'])
Namespace(letter=None)
怎麼可能爲這樣的結果配置argparse?
Namespace(letter=['a'])
Namespace(letter=['b'])
Namespace(letter=['a', 'b'])
這是我使用的解決方案。所以,沒有使用argparse默認可能性的解決方案。 – MB4E