如何在变量中存储argparse值?

bio*_*015 7 python argparse

我正在尝试使用以下代码向我的脚本添加命令行选项:

import argparse

parser = argparse.ArgumentParser('My program')
parser.add_argument('-x', '--one')
parser.add_argument('-y', '--two')
parser.add_argument('-z', '--three')

args = vars(parser.parse_args())

foo = args['one']
bar = args['two']
cheese = args['three']
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

另外,我如何从IDLE shell运行它?我使用命令'python myprogram.py -x foo -y bar -z cheese',它给我一个语法错误

kha*_*ler 22

这将有效,但你可以简化它有点像这样:

args = parser.parse_args()

foo = args.one
bar = args.two
cheese = args.three
Run Code Online (Sandbox Code Playgroud)


Gre*_*reg 8

使用 args.__dict__

args.__dict__["one"]
args.__dict__["two"]
args.__dict__["three"]
Run Code Online (Sandbox Code Playgroud)

  • 我同意你的解决方案是正确的.而且很有趣.与此同时,如果Python领域的答案不是他们认为可接受的pythonic形式,那么SO上的一些人会变得非常暴躁和沮丧.咩.即使"可接受的"随着时间的推移而变化. (4认同)
  • 它是“有效的”,但应该避免。下划线的存在是一个**强烈**暗示这些方法不打算直接调用。因此,**是的,它有效,但不,这不是一个好的答案**。所以我理解有些人反对它。 (3认同)