[英]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.