3
我在想爲什麼Python的中可選參數和位置參數的大小寫轉換之間的不一致。將'--optional-argument'
添加到解析器將被命名爲'optional_argument'
,但位置參數將保留positional-argument
。Python argparse可選參數和位置參數之間的大小寫不一致
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('positional-argument')
parser.add_argument('--optional-argument')
arg_dict = vars(parser.parse_args('Positional --optional-argument Optional'.split()))
print(arg_dict)
# {'positional-argument': 'Positional', 'optional_argument': 'Optional'}
我可以改變我的位置參數添加到解析器的方式,但矛盾將繼續(雖然在不同的地方)
parser.add_argument('positional_argument')
parser.add_argument('--optional-argument')
# {'positional_argument': 'Positional', 'optional_argument': 'Optional'}
破折號替換允許您使用'args.optional_argument'(使用有效的Python屬性名稱)訪問該值。你通常在選擇定位'dest'時有更多的自由。如果你使用'metavar',你的用戶甚至不會在'help'中看到'dest'。 – hpaulj