gpt4 book ai didi

python - Pylint 消息 : Invalid constant name (invalid-name)

转载 作者:太空狗 更新时间:2023-10-29 16:54:58 32 4
gpt4 key购买 nike

在记录器函数的简写情况下,Pylint 提示 Invalid constant name "myprint"(invalid-name)

# import
from utils import get_logger
LOGFILE = '6_evaluator.log'
myprint = get_logger(LOGFILE)

def main():
# some stuff
myprint('log log')

if __name__ == '__main__':
main()

这可以在不调整 pylint 配置的情况下完成吗?

如果需要,这里是 get_logger 的定义:

import logging
import os

def get_logger(logfile):
""" Return a logger that log on stdout and in LOGFILE"""
if os.path.isfile('{}'.format(logfile)):
os.remove('{}'.format(logfile))

logging.basicConfig(filename='{}'.format(logfile), level=logging.INFO)
logger = logging.getLogger('')
logger.addHandler(logging.StreamHandler())
myprint = logger.info

myprint('log file at: {}'.format(logfile))
myprint('Again Hello from logger')
return myprint

最佳答案

myprint 的定义移动到 main() 是抑制消息的一种方法。

每皮林特 docs for invalid-name (C0103) , 似乎常量的名称必须有效地大写。因此,名称 MYPRINT 不会生成消息。

如果您将如下注释附加到该行,则不应生成消息。

log = get_logger()  # pylint: disable=locally-disabled, invalid-name

或者,将以下内容添加到您项目的 .pylintrc 中。这是我的首选解决方案。

[BASIC]
good-names=log

如果您希望整个无效名称模式(而不仅仅是单个名称)有效,您可以在同一部分自定义 const-rgx 等。请参阅前面链接的 pylint 页面。

最后,如果您的应用程序很小且独立,您可以只配置和使用根记录器,例如 logging.warn('test')

关于python - Pylint 消息 : Invalid constant name (invalid-name),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33068367/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com