传参数之 argparse使用或创建类

本文介绍了Python的argparse模块,用于创建用户友好的命令行接口。详细讲解了如何创建argparse对象,通过add_argument添加参数并设定默认值,以及如何利用类来设置和传递参数。通过parse_args()解析参数,并展示了如何在其他文件中调用包含参数默认值的类。

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

argparse

argparse模块用于编写用户友好的命令行接口。程序定义它需要的参数,argparse解析出那些参数。 同时,还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

创建argparse

import argparse
parser = argparse.ArgumentParser(description='写一点对这个函数参数的描述呀')

这个描述和参数信息可通过保存代码的py文件查询

python 文件名.py -h

通过add_argument添加参数

parser.add_argument(
		"-l", 
		"--length", 
		type=int, 
		default=20, 
		help="Maximum conversation length"
)

-l和–length是name or flags,如下方式即可传参,其中“=”可省略

python 文件名.py -l=5
#或者
python 文件名.py -length=5

type限制参数的类型有int,float,str等,同样有限制作用的参数如表:

参数说明常用值
nargs传入参数的数量限制+表示至少一个参数,?表示0或1个,*表示0或所有
action传入的是bool值store_true默认False,store_false默认true

default表示没有传入对应参数时,采取默认值,help是帮助信息

通过parse_args()解析参数

if __name__ == "__main__":
    args = parser.parse_args()
    函数名(args.length, args.model_path, args.character, args.score)

写个参数的类

写个类的py,类里设置各种参数的默认值

class ModelArgs:
    def __init__(self):
        self.output_dir = "output-medium"
        self.model_type = "gpt2"
        self.model_name_or_path = "microsoft/DialoGPT-medium"
        self.config_name = "microsoft/DialoGPT-medium"
        self.tokenizer_name = "microsoft/DialoGPT-medium"
        self.block_size = 512
        self.do_train = True

在别的文件调用这个类

通过如下方式,修改与默认值不同的参数

from XXX import  ModelArgs
args = ModelArgs()
args.output_dir = "output-joey"
args.model_name_or_path = "microsoft/DialoGPT-medium"
args.config_name = "microsoft/DialoGPT-medium"
args.tokenizer_name = "microsoft/DialoGPT-medium"

函数名(args)

直接把这个类传到函数,在函数内调用这个类的属性即可,eg: args.output_dir

PS:
在上级目录或别的目录下,需要先导入py文件所在目录

# Setup python path to call other libs.
import sys
sys.path.append("../")
### 使用 `argparse` 库递命令行参数 #### 导入模块 为了使用 `argparse` 解析命令行参数,首先需要导入此模块。由于 `argparse` 是 Python 标准库的一部分,所以无需额外安装即可直接在脚本中引入。 ```python import argparse ``` #### 创建解析器对象 创建一个 `ArgumentParser` 对象作为参数解析的基础。可以在此处设置描述信息以便于帮助文档的生成[^3]。 ```python parser = argparse.ArgumentParser(description="这是一个关于如何使用 argparse 进行命令行参数解析的例子") ``` #### 添加命令行参数 通过调用 `add_argument()` 方法向解析器添加期望接收的命令行选项位置参数。对于布尔型的开关参数,可以通过指定 `action='store_true'` 者 `action='store_false'` 来实现逻辑控制[^5]。 ```python parser.add_argument('--verbose', help='启用详细模式', action='store_true') parser.add_argument('filename', type=str, help='文件名路径') ``` #### 执行解析过程 最后一步是调用 `parse_args()` 函数完成实际的参数解析工作,并返回包含所有已解析参数的对象实例。 ```python args = parser.parse_args() if args.verbose: print(f"正在处理 {args.filename} 文件...") else: print(f"{args.filename}") ``` 当上述代码被执行时,程序会依据入的不同命令行参数执行相应的操作。如果提供了 `--verbose` 参数,则表示启用了详细的日志输出;而如果没有提供该参数,默认情况下只打印文件名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值