我的许多脚本解析if __name__ == '__main__'
块内的命令行参数。我在那里使用'普通'变量名,例如parser
。由于这不在任何函数中,因此pylint将抛出C0103: invalid constant name <variable>
。因为我并没有真正将这些变量用作常量(只是解析参数),所以我觉得在这里使用allcaps有点奇怪。
有没有办法部分禁用pylint规则,以便在if __name__ == '__main__'
块内部时不抛出C0103?
我想要的是以下内容:
import argparse
PI = 3.14 # <--- should give no C0103
e = 2.71 # <-- should throw C0103
if __name__ == '__main__':
parser = argparse.ArgumentParser() # <-- should give NO C0103
PARSER = argparse.ArgumentParser() # <-- should optionally give C0103 (wrong variable name)
非常感谢:-)。
答案 0 :(得分:3)
通过使用pylint注释包装 main 方法,可以实现这一点。
import argparse
# pylint: disable=C0103
PI = 3.14 # <--- should give no C0103
# pylint: enable=C0103
e = 2.71 # <-- should throw C0103
# pylint: disable=C0103
if __name__ == '__main__':
parser = argparse.ArgumentParser() # <-- should give NO C0103
PARSER = argparse.ArgumentParser()
# pylint: enable=C0103