如何部分禁用/忽略pylint规则?

时间:2014-07-10 08:50:29

标签: python pylint pep8

我的许多脚本解析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)

非常感谢:-)。

1 个答案:

答案 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