You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Argparse定义--in参数后无法通过点语法访问的问题

解决argparse中--in参数的访问问题

问题核心是in是Python的关键字(用于判断元素是否在序列/集合中,比如'a' in ['a','b']),Python不允许直接通过.运算符访问名为关键字的属性,所以args.in会触发SyntaxError。

有两种可行的解决方法:

方法一:使用getattr()函数访问

通过字符串形式指定属性名,避开关键字的语法限制:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--in', default='../../in')
parser.add_argument('--out', default='../../out')
args = parser.parse_args()

# 用getattr访问--in对应的属性
input_path = getattr(args, 'in')
print(f"输入文件夹: {input_path}")
print(f"输出文件夹: {args.out}")

方法二:定义参数时指定dest重命名属性

在add_argument中通过dest参数,把参数对应的属性名改成非关键字的名称(比如input_dir),之后直接用新名称访问即可,这是更推荐的写法,代码可读性更强:

import argparse

parser = argparse.ArgumentParser()
# 指定dest将--in映射为input_dir属性
parser.add_argument('--in', dest='input_dir', default='../../in', help='输入文件夹')
parser.add_argument('--out', default='../../out', help='输出文件夹')
args = parser.parse_args()

# 直接访问重命名后的属性
print(f"输入文件夹: {args.input_dir}")
print(f"输出文件夹: {args.out}")

内容的提问来源于stack exchange,提问作者frarugi87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:30:48