import argparse
# 单个参数服务器
''' 1. 先实例化一个class '''
parser = argparse.ArgumentParser()
''' 2. 添加参数 '''
parser.add_argument('--name') # 可选参数:这里有--,那么命令行输入时也要有--
parser.add_argument('years')
parser.add_argument('--friend',default='hjw') # 只有可选参数才有default
parser.add_argument('--really',action='store_true',default=False) # 如果在命令行输入--really,那么值是True,如果不输入--really,那么值是False
''' 3. 获取参数 '''
args = parser.parse_args()
print(f'{args.name} is {args.years} years old, her friend is {args.friend}, really = {args.really}')
''' 命令行情况如下:
PS D:\Neural Network\SuperPoint\Pytorch_SuperPoint\pytorch-superpoint-master> python 实验.py --name xxx 22 --friend yyy --really
xxx is 22 years old, her friend is yyy, really = True
PS D:\Neural Network\SuperPoint\Pytorch_SuperPoint\pytorch-superpoint-master> python 实验.py --name xxx 22 --friend yyy
xxx is 22 years old, her friend is yyy, really = False
'''
# 多个参数服务器
''' 1. 先实例化一个class '''
parser = argparse.ArgumentParser()
''' 2. 划分子解析器 '''
subparsers = parser.add_subparsers(dest = 'command')
p_train = subparsers.add_parser('train')
p_train.add_argument('epoch')
p_train.set_defaults(func = 'train_func')
p_val = subparsers.add_parser('val')
p_val.add_argument('epoch')
p_val.set_defaults(func = 'val_func')
''' 3. 获取参数 '''
args = parser.parse_args()
print(args.func)
''' 命令行情况如下
PS D:\Neural Network\SuperPoint\Pytorch_SuperPoint\pytorch-superpoint-master> python 实验.py train 100
train_func
'''
动态导入:应用场景是根据用户输入,从不同的.py文件中导入对应的函数、类等