当我运行此代码时,我得到了
AttributeError: 'ArgumentParser' object has no attribute 'max_seed'
这是代码
import argparse
import ConfigParser
CFG_FILE='/my.cfg'
# Get command line arguments
args = argparse.ArgumentParser()
args.add_argument('verb', choices=['new'])
args.add_argument('--max_seed', type=int, default=1000)
args.add_argument('--cmdline')
args.parse_args()
if args.max_seed:
pass
if args.cmdline:
pass
我的源文件名为" fuzz.py"
答案 0 :(得分:8)
您应首先初始化解析器和参数,然后才能从parse_args()
获取实际参数(请参阅文档中的example):
import argparse
import ConfigParser
CFG_FILE='/my.cfg'
# Get command line arguments
parser = argparse.ArgumentParser()
parser.add_argument('verb', choices=['new'])
parser.add_argument('--max_seed', type=int, default=1000)
parser.add_argument('--cmdline')
args = parser.parse_args()
if args.max_seed:
pass
if args.cmdline:
pass
希望有所帮助。
答案 1 :(得分:0)
如果您在另一个类中使用argparse
解析的参数(在您进行self.args = parser.parse_args()
的某个地方),则可能需要显式地告诉您的分析器忽略Namespace
类型检查。正如@frans在Avoid Pylint warning E1101: 'Instance of .. has no .. member' for class with dynamic attributes
所说:
只需提供现在对我有用的答案-如[ 编译器] [1]建议您可以在 您的项目
.pylintrc
:[TYPECHECK] ignored-classes=Namespace