python - Python3中如何获取基类中子类的当前__package__名称?
问题描述
我BaseConsumer
在 package 中有一个基类,common
它按如下方式初始化日志记录:
常见/base.py:
class BaseConsumer():
def __init__(self):
self.logger = logging.getLogger(f'{__package__}.{self.__class__.__name__}')
...
现在,在 package 中stash
,当我使用 subclass 时BaseConsumer
,Logger
会创建一个名为common.Consumer
而不是stash.Consumer
:
存储/consumer.py:
class Consumer(BaseConsumer):
...
我怎样才能使logging.getLogger(f'{__package__}.{self.__class__.__name__}')
泛型,以便__package__
更改为子类的包的名称,(在这种情况下stash
)?
注意:我试图通过 获取子类的包名self
,但似乎无法通过它获得该信息?
解决方案
推荐阅读
- python - 带有“is”关键字的意外输出
- scala - 在 Scala 中,如何避免强制转换函数参数?
- django - 如何制作多值字段?
- c# - 如何使用 Microsoft.Office.Interop.Word 库删除输出中的段落间距
- tsql - 可以针对生产数据库运行 T-SQL CREATE OR ALTER 语句(无需停机)吗?
- python - 保存和恢复基于 CNN 的去噪网络 Tensorflow
- java - 将类/jar 文件添加到 IntelliJ IDEA
- javascript - 如何过滤显示为表格的 javascript 常量?
- c++ - 如果用户为动态数组中的数字输入-1,如何结束程序?
- spring - spring boot transactional 不会回滚多个对象