Python: 参数服务器 argparse + 动态导入模块

本文详细介绍了Python的argparse模块,用于命令行选项、参数和子命令解析。首先通过实例展示了如何创建单个参数服务器,包括添加参数、获取参数及其默认值的设置。接着,演示了如何构建多个参数服务器,使用add_subparsers方法创建子解析器,分别定义了'train'和'val'两个子命令,并设置了默认函数。文章还提及动态导入的概念,适用于根据用户输入从不同.py文件中导入相应功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件中导入对应的函数、类等

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值