如果我通过pylint3运行这些内容(flags.py):
import argparse
FLAGS = argparse.Namespace()
_PARSER = argparse.ArgumentParser()
_PARSER.add_argument('--edit', action='store_true')
_PARSER.parse_args(sys.argv, namespace=FLAGS)
def test():
print(FLAGS.edit)
在其他错误(我知道如何修复)中,我收到此错误:
E: 12,8:test: Instance of 'Namespace' has no 'edit' member
我可以通过不将namespace
参数用于parse_args
来解决这个问题,但我使用namespace
参数,因为它允许我这样做
from flags import FLAGS
FLAGS.edit
我想要访问我的标志而不是:
import flags
flags.FLAGS.edit
我很想有办法在此FLAGS对象上特别平息此错误消息。有没有办法做到这一点?
(我也会接受一些更好的做旗帜的方式,虽然这可能不是这个问题的主题。而且,是的,我知道这涉及全球状态,这是Bad(TM)。我很高兴有了它,因为命令行参数无论如何都是全局的,这似乎是对我来说最干净的方法。)
答案 0 :(得分:0)
我有两件事要说:
答案 1 :(得分:0)
您可以尝试getattr(FLAGS, 'edit')
dstromberg关于让pylint知道发生了什么的论点是有效的。