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

4 投票
1 回答
2273 浏览
提问于 2025-04-18 12:46

我有很多脚本是在 if __name__ == '__main__' 这个块里解析命令行参数的。在这里,我用的是一些“正常”的变量名,比如 parser。因为这些变量不在任何函数里,pylint 就会报错 C0103: invalid constant name <variable>。但实际上我并不是把这些变量当成常量来用(只是用来解析参数),所以用全大写的名字我觉得有点奇怪。

有没有办法部分禁用 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 个回答

5

这可以通过在main方法周围加上pylint的注释来实现。

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

撰写回答