我正在尝试处理我当前的 python 程序,非常注意 pylint 警告,所以虽然我意识到我可以简单地关闭警告,但我想确保在我这样做之前没有更理想的解决方案。
我当前的代码部分是我的日志记录代码。我有一个init()
设置处理程序并将它们附加到根记录器的函数,以及一个set_console_level(level)
设置控制台消息报告级别的函数(DEBUG、INFO 等):
_CONSOLE_OUT = NONE
def init():
"""Set up the error handlers for the root logger"""
console_out = logging.StreamHandler()
console_out.setLevel(logging.INFO) #Show info messages for now
#...
logging.root.addHandler(console_out)
global _CONSOLE_OUT
_CONSOLE_OUT = console_out
#Rest of function sets up more handlers similarly
init()
def set_console_level(level):
"""Change the level at which console messages are printed"""
assert __CONSOLE_OUT is not None #Set in init
_CONSOLE_OUT.setLevel(level)
据我从阅读中可以看出,这是做到这一点的方法。需要该行global _CONSOLE_OUT
才能写入模块级变量。但是,当我在这个文件上运行 pylint 时,我收到了警告W: 15,4:init: Using the global statement
。有没有办法避免这个警告?解决这个问题的更好方法?
(请不要在没有global _CONSOLE_OUT #pylint: disable=W****
理由的情况下说)