鱼C论坛

 找回密码
 立即注册
查看: 1786|回复: 4

[已解决]parser和args分别是什么

[复制链接]
发表于 2023-6-23 11:54:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
解析器parser是ArgumentParser类的一个实例吗?args是parser的一个实例吗?

def config_parser():

    import configargparse
    parser = configargparse.ArgumentParser()
    parser.add_argument('--config', is_config_file=True,
                        help='config file path')
    parser.add_argument("--expname", type=str,
                        help='experiment name')
    parser.add_argument("--basedir", type=str, default='./logs/',
                        help='where to store ckpts and logs')
    parser.add_argument("--datadir", type=str, default='./data/llff/fern',
                        help='input data directory')   
    return parser

parser = config_parser()
args = parser.parse_args()
最佳答案
2023-6-23 11:57:19
是的,parserArgumentParser 类的一个实例,而 args parser 的一个实例。

在代码中,config_parser() 函数创建了一个 ArgumentParser 的实例并返回它,这个实例被赋值给变量 parser

然后,通过调用 parser.parse_args() 方法,解析器会解析命令行参数并将结果存储在 args 对象中。这里 args parser 实例的一个实例,它包含了解析后的参数值。

因此,parser ArgumentParser 的一个实例,args parser 的一个实例。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-23 11:57:19 | 显示全部楼层    本楼为最佳答案   
是的,parserArgumentParser 类的一个实例,而 args parser 的一个实例。

在代码中,config_parser() 函数创建了一个 ArgumentParser 的实例并返回它,这个实例被赋值给变量 parser

然后,通过调用 parser.parse_args() 方法,解析器会解析命令行参数并将结果存储在 args 对象中。这里 args parser 实例的一个实例,它包含了解析后的参数值。

因此,parser ArgumentParser 的一个实例,args parser 的一个实例。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

 楼主| 发表于 2023-6-23 12:04:27 | 显示全部楼层
陶远航 发表于 2023-6-23 11:57
是的,parser 是 ArgumentParser 类的一个实例,而 args 是 parser 的一个实例。

在代码中,config_pars ...

谢谢大佬!我还有个问题:
vars(args)返回的是什么呢?是各个参数名称构成的列表吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-23 12:05:19 | 显示全部楼层
解析器(parser)是一种用于解析命令行参数的工具。在这种情况下,解析器是通过configargparse库中的ArgumentParser类来创建的一个实例。解析器用于定义和解析命令行参数,我们可以定义参数的名称、类型、默认值和帮助信息等,并在执行程序时解析相应的参数。
args是通过parser解析命令行参数后得到的一个命名空间(namespace)对象。这个对象保存了解析后的参数值,可以通过对象属性的方式来访问这些参数值。在这里,我们可以通过args来访问--config、--expname、--basedir和--datadir等参数的值。例如,要访问--config的值,可以使用args.config。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

发表于 2023-6-23 12:06:28 | 显示全部楼层
catalpa-bungei 发表于 2023-6-23 12:04
谢谢大佬!我还有个问题:
vars(args)返回的是什么呢?是各个参数名称构成的列表吗?

vars(args) 返回的是一个包含 args 对象中所有参数及其对应值的字典。

具体来说,vars(args) 返回一个字典,其中字典的键是参数的名称,而字典的值是该参数在解析后的实际值。

例如,如果你的参数 --expname 的值是 "example",那么 vars(args)['expname'] 将返回字符串 "example"

因此,vars(args) 并不返回参数名称构成的列表,而是返回一个字典,其中键是参数名称,值是参数的实际值。你可以通过遍历字典或使用字典的其他方法来获取参数及其值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 17:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表