首页 > 解决方案 > Python3中如何获取基类中子类的当前__package__名称?

问题描述

BaseConsumer在 package 中有一个基类,common它按如下方式初始化日志记录:

常见/base.py

class BaseConsumer():
   def __init__(self):
      self.logger = logging.getLogger(f'{__package__}.{self.__class__.__name__}')
   ...

现在,在 package 中stash,当我使用 subclass 时BaseConsumerLogger会创建一个名为common.Consumer而不是stash.Consumer

存储/consumer.py

class Consumer(BaseConsumer):
   ...

我怎样才能使logging.getLogger(f'{__package__}.{self.__class__.__name__}')泛型,以便__package__更改为子类的包的名称,(在这种情况下stash)?

注意:我试图通过 获取子类的包名self,但似乎无法通过它获得该信息?

标签: pythonpython-3.xdebugging

解决方案


推荐阅读