小编Jas*_*man的帖子

在 Python 中,如何让扩展类元素显示在自动完成中?

我是新手,所以使用我在网上找到的一个例子来添加一些自定义日志记录级别。这将包含在一个库中,该库将被导入到各种脚本中。它按预期工作,但添加的级别未显示在自动完成列表中(使用 PyCharm),并且 PyCharm 抱怨 LOGGER 中存在未解析的属性引用。当我编码并输入“LOGGER”时。我看到正常的错误、警告、信息等可供选择,但我的自定义级别“详细”不在列表中。随着时间的推移,将会添加更多自定义级别,这也将推出给一个开发团队,所以我需要让这个工作。

知道为什么我的自动完成列表中没有详细选项吗?

在此处输入图片说明 在此处输入图片说明

这是我的文件。

px_logger.py

from logging import getLoggerClass, addLevelName, setLoggerClass, NOTSET

public class PxLogger(getLoggerClass()):
    def __init__(self, name, level=NOTSET):
        super(PxLogger, self).__init__(name, level)

        addLevelName(5, "VERBOSE")

    def verbose(self, msg, *args, **kwargs):
        """Custom logger level - verbose"""
        if self.isEnabledFor(5):
            self._log(5, msg, args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

my_script.py

import json
import logging.config
from px_logger import PxLogger

logging.setLoggerClass(PxLogger)
LOGGER = logging.getLogger(__name__)

with open('../logging.json') as f:  # load logging config file
    CONFIG_DICT = json.load(f)
logging.config.dictConfig(CONFIG_DICT)

LOGGER.verbose('Test verbose message')
Run Code Online (Sandbox Code Playgroud)

屏幕输出

VERBOSE - Test verbose message
Run Code Online (Sandbox Code Playgroud)

python pycharm

1
推荐指数
1
解决办法
324
查看次数

标签 统计

pycharm ×1

python ×1