我将argparse
用于Python CLI,如下所示:
import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--myarg', type=str, help="Dummy arg")
args = parser.parse_args()
# access with dot notation
print(args.myarg)
这很好用。但是,我现在想添加一个名为--continue
的参数。尝试使用args.continue
访问arg时出现语法错误。
除了点表示法之外,还有其他方法可以访问CLI参数吗?我尝试了类似dict的访问args['continue']
,但这给了我TypeError: 'Namespace' object is not subscriptable
。我真的需要考虑另一个CLI arg名称吗?
使用vars()
返回对象的字典形式(如args
(,让您完全按照自己的尝试执行。
args = vars(parser.parse_args())
print(args['continue'])
或者,您可以使用getattr
内置函数直接从对象获取属性:
args = parser.parse_args()
print(getattr(args, 'continue')