2014-10-09 50 views
0

例如:如何知道可選參數是否被傳遞?

parser = argparse.ArgumentParser(description="") 
parser.add_argument('k', help='k index', type=int) 
parser.add_argument('j', help='j', type=int, nargs='?') 

我需要知道,如果參數j給予與否。我怎樣才能做到這一點?

回答

2

通過parser.parse_args返回的Namespace對象將具有分配給所提供的int(如果已provied)一個j屬性,或None(如果未提供它)。

parser = argparse.ArgumentParser(description="") 
parser.add_argument('k', help='k index', type=int) 
parser.add_argument('j', help='j', type=int, nargs='?') 
for inputs in (['5'], ['5', '2']): 
    args = parser.parse_args(inputs) 
    if args.j is not None: 
     print("got a j") 
    else: 
     print("No j") 

輸出:

No j 
got a j 
相關問題