如何从其他模块访问对象实例

问题描述 投票:0回答:2
import logging

logger = logging.getLogger(__name__)

如何使其他模块可以访问此实例?

python django
2个回答
2
投票

只需将变量实例导入到您打算使用它的命名空间中:

module.A

import logging

logger = logging.getLogger(__name__)

module.B

from module.A import logger

变量实例

logger
现在可在命名空间
module.B
中使用。

您将拥有引用同一对象并可用于新命名空间的变量实例 iff 您不需要 取消绑定 [python-docs] 此变量实例从它所引用的内容或 (重新)绑定[python-docs]它到另一个对象。

我对您在特定用例中应该注意的工程细节发表了评论。


1
投票

使用

builtins

做类似的事情

import builtins
import logging

_logger = logging.getLogger(__name__)
builtins.LOGGER = _logger

现在您可以在整个项目中将

_logger
作为名称为
LOGGER

的内置类型对象进行访问
© www.soinside.com 2019 - 2024. All rights reserved.