在文件test.py中,
import argparse
parser = argparse.ArgumentParser(description="SSc score prediction.")
parser.add_argument( '-f', '--fold',choices=(1,2,3,4,5), help='5-fold training', type=int, default=2) # 这里'-f'和'--fold'可以只保留一个,或者都保留。只保留一个的话,args就会存在响应的属性args.f或者args.fold。如果都保留的话,并不会同时存在2个属性,而是会存在args.fold这一个。
args = parser.parse_args()
a = args.fold # 注意这里写a = args.f会报错,当有--fold和-f同时存在的时候,只会有args.fold而没有args.f
print(a)
上面这个代码是使用argparse的典型用法。因为代码中用了-f和–fold两种参数,所以可以通过以下方式运行这个文件:
python test.py -f=3 # okay
python test.py -f 3 # okay
python test.py --fold=3 # okay
python test.py --fold 3 # okay
python test.py --f 3 # okay, but nor recommended
python test.py -fold 3 # okay
python test.py -f==3 # wrong
python test.py --fold==3 # wrong
如果把代码改成:
import argparse
parser = argparse.ArgumentParser(description="SSc score prediction.")
parser.add_argument('--fold',choices=(1,2,3,4,5), help='5-fold training', type=int, default=2)
args = parser.parse_args()
a = args.fold
print(a)
这个时候就只能使用python test.py --fold=3这种方式来运行,不能再用-f=3了,因为-f根本没有定义。