argparse的自动使用字符串与nargs='*'和metavar可选复数“(s)”存在问题
创始人
2024-09-13 06:00:39
0

在argparse中,使用nargs='*'可以接受任意数量的参数,而使用metavar可指定参数的名称。当metavar指定的参数为复数时,例如'(s)',argparse会自动将参数名添加复数后缀。

然而,这种自动处理可能会导致一些问题,特别是在使用默认值时。下面是一个包含代码示例的解决方法:

import argparse

# 创建ArgumentParser对象
parser = argparse.ArgumentParser()

# 添加参数
parser.add_argument('--names', nargs='*', metavar='name(s)', default=['Alice', 'Bob'],
                    help='names of people')

# 解析命令行参数
args = parser.parse_args()

# 输出结果
print(args.names)

在这个示例中,我们创建了一个--names参数,接受任意数量的名称。我们使用metavar='name(s)'来指定参数的名称为复数形式。

当我们运行这个脚本时,可以看到以下输出结果:

$ python script.py --names John Mary
['John', 'Mary']

$ python script.py
['Alice', 'Bob']

通过指定默认值为['Alice', 'Bob'],即使没有传递参数,args.names也会有默认值。

需要注意的是,argparse自动添加复数后缀的功能仅适用于英文单词的复数形式。如果需要处理其他语言的复数形式,可能需要自定义一些逻辑来处理。

相关内容

热门资讯

大神推荐!微扑克有辅助挂,广东... 大神推荐!微扑克有辅助挂,广东雀神麻雀怎样开挂,友友麻将起牌器(有挂解说);1、友友麻将起牌器透视辅...
玩家必看攻略!pokermas... 玩家必看攻略!pokermastersteam外挂,雀神小程序提高胜率,卡农斗牛辅助最新版本(有挂解...
研究成果!德扑之星记分牌有有用... 研究成果!德扑之星记分牌有有用,广东雀神麻雀辅助软件,推大石辅助器(有挂解密);研究成果!德扑之星记...
我来分享!aapoker有外挂... 我来分享!aapoker有外挂,微信小程序雀神挂件,丽水都莱怎么开挂(有挂辅助);丽水都莱怎么开挂辅...
一分钟了解!德扑统计软件,广东... 一分钟了解!德扑统计软件,广东雀神麻将插件免费版,海浪手游有挂吗(有挂解密)1、进入到海浪手游有挂吗...
终于懂了!wepoke小技巧,... 终于懂了!wepoke小技巧,雀神小程序辅助app,哈灵怎么开挂(有挂脚本)1、哈灵怎么开挂系统规律...
记者发布!pokerx机器人,... 记者发布!pokerx机器人,全民雀神辅助器,雀神麻将有挂吗(有挂细节)1、金币登录送、破产送、升级...
必备科技!wpk大厅是机器人,... 必备科技!wpk大厅是机器人,广东雀神吗辅助软件,杭州都莱爽口辅助器下载(有挂介绍)亲,关键说明,杭...
一分钟了解!线上德州后台可以操... 一分钟了解!线上德州后台可以操控,七彩云南游戏辅助器,畅享麻将有挂吗(有挂黑科技)七彩云南游戏辅助器...
实测分享!好运大菠萝有挂的,雀... 实测分享!好运大菠萝有挂的,雀神麻将辅牌器怎么下载,掌电竞技有外挂吗(有挂方法);1、起透看视 掌电...