我有一個字典,它將人類可讀值映射到三個不同的Python特定值。 argparse Python模塊如何使用這個字典來獲取特定的值,而用戶可以在這些鍵之間進行選擇。使用Python的字典argparse
目前我有這樣的:
def parse(a):
values = { "on": True, "off": False, "switch": None }
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--value", choices=values, default=None)
args = parser.parse_args(a)
print("{}: {}".format(type(args.value), args.value))
>>> parse(['-v', 'on'])
<type 'str'>: on
>>> parse(['-v', 'off'])
<type 'str'>: off
>>> parse(['-v', 'switch'])
<type 'str'>: switch
>>> parse([])
<type 'NoneType'>: None
的問題是,argparse不返回True
,False
或None
如果該參數給出。有沒有簡單的方法來添加此功能?當然,我將能夠執行像這樣算賬:
args.value = values[args.value]
其實,這是我在做什麼目前,但這並不使用默認值很好地工作(我會檢查值已經是無或者默認設置爲"switch"
)。因爲我多次使用這個,所以每次都必須這樣做。
指定'type = values .__ getitem__'就可以了。不知道,如果這是一個很好的解決方案,目前我很不舒服,所以我不知道我是否有好的想法。 – user2357112
設置'default ='開關'有問題嗎?預先指定默認選擇是很好的做法。 – hpaulj