1
比如我有選擇:蟒蛇 - argparse一個參數,而不是幾個人
parser.add_argument('-b', action="store_true")
parser.add_argument('-c', action="store_true")
parser.add_argument('-d', action="store_true")
我想使所有的人都用同義詞選項「-a」。可能嗎?
比如我有選擇:蟒蛇 - argparse一個參數,而不是幾個人
parser.add_argument('-b', action="store_true")
parser.add_argument('-c', action="store_true")
parser.add_argument('-d', action="store_true")
我想使所有的人都用同義詞選項「-a」。可能嗎?
我認爲這是最簡單的parse_args()
後,要做到這一點:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-b', action="store_true")
parser.add_argument('-c', action="store_true")
parser.add_argument('-d', action="store_true")
parser.add_argument('-a', action="store_true")
args = parser.parse_args()
if args.a: args.b = args.c = args.d = True
或者,你可以通過自定義操作做到這一點,但我認爲這是矯枉過正:
import argparse
class AllAction(argparse.Action):
def __call__(self, parser, args, values, option_string = None):
# print '{n} {v} {o}'.format(n = args, v = values, o = option_string)
for param in ['a', 'b', 'c', 'd']:
setattr(args, param, True)
parser = argparse.ArgumentParser()
parser.add_argument('-b', action="store_true")
parser.add_argument('-c', action="store_true")
parser.add_argument('-d', action="store_true")
parser.add_argument('-a', action = AllAction, nargs = '?')
args = parser.parse_args()
print(args)
是的,這是可能的解。我想也許有內置的方式來做到這一點。非常感謝。 – Antigluk
+1。你寫了和我一樣的東西,但速度更快,並且有更完整的示例代碼...... – abarnert