我正在研究一个使用 parse_args 的简单脚本,但如果变量名称args
,则赋值不起作用,如文档和多个示例所示。
(Pdb) parser.parse_args()
Namespace(partition_frequency='daily', start_date='2016-02-03', table_name='test_table')
(Pdb) x=parser.parse_args()
(Pdb) x
Namespace(partition_frequency='daily', start_date='2016-02-03', table_name='test_table')
(Pdb) args=parser.parse_args()
(Pdb) args
**>> No output**
(Pdb) arg=parser.parse_args()
(Pdb) arg
Namespace(partition_frequency='daily', start_date='2016-02-03', table_name='test_table')
有什么线索吗?
问题是您在 pdb
中运行这些命令。
事实证明,args
是一个 pdb 命令!因此,它没有被解释为变量,而是被解释为 pdb 的命令。
你使用什么 Python 版本?我刚刚用Python 2.7检查了这个简单的例子,它可以工作井。
test.py:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--foo', help='foo of the %(prog)s program')
args = parser.parse_args()
print args
它给了我以下输出:
>test.py --foo qqq
Namespace(foo='qq')