簡體   English   中英

python argparse,如何通過名稱引用args

[英]python argparse, how to refer args by their name

這是一個關於arthon中的argparse的問題,它可能很容易

import argparse

parser=argparse.ArgumentParser()

parser.add_argument('--lib')

args = parser.parse_known_args()

if args.lib == 'lib':
    print 'aa'

這會工作,但不是調用args.lib,我只想說'lib'(我不想輸入更多),有沒有辦法將所有args變量導出模塊(即更改范圍)。 所以我可以通過在前面指定模塊的名稱來直接檢查lib的值

PS:我有很多變數,我不想重新分配每一個變量

首先,我將建議使用args說明符。 它清楚地說明了lib的來源。 也就是說,如果你發現你的參數很多,你可以將它分配給一個較短的名字:

lib = args.lib

有一種方法可以同時將所有屬性轉儲到全局命名空間中,但它不適用於函數的本地命名空間,並且沒有很好的理由使用globals是一個壞主意。 我不會考慮保存一些args.實例args. 是一個足夠好的理由。 那就是說,這是:

globals().update(args.__dict__)

當然,只需添加一行將args.lib分配給lib

import argparse

parser=argparse.ArgumentParser()    
parser.add_argument('-lib')    
args = parser.parse_known_args()

lib = args.lib 

if lib == 'lib':
    print 'aa'

粗略...但只是因為你不能意味着你應該...但只是為了踢全球globals().update(dict(args._get_kwargs()))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM