Как получить доступ к экземпляру объекта из других модулей

import logging

logger = logging.getLogger(__name__)

Как сделать этот экземпляр доступным из других модулей?

Обратите внимание: если вы используете пространство имен Logger, logging.getLogger(__name__) вернет Logger текущего модуля текущего приложения. Возможно, вам не захочется использовать это в модуле другого приложения, поскольку вы можете захотеть использовать модуль нового приложения. Однако всегда полезно использовать пространство имен Logger.

Chukwujiobi Canon 17.04.2024 05:08
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
67
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Просто импортируйте экземпляр переменной в пространство имен, в котором вы собираетесь его использовать:

module.A

import logging

logger = logging.getLogger(__name__)

module.B

from module.A import logger

Экземпляр переменной logger теперь доступен в пространстве имен module.B.

У вас будет этот экземпляр переменной, ссылающийся на тот же объект и доступный для нового пространства имен, если вы не отсоедините [python-docs] этот экземпляр переменной от того, на что он ссылается, или (повторно) привяжите [python-docs]это на другой объект.

Я прокомментировал инженерную деталь, о которой вам следует знать в вашем конкретном случае использования.

Ответ принят как подходящий

используйте builtins

сделать что-то вроде

import builtins
import logging

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

теперь вы можете получить доступ к _logger во всем проекте как к встроенному объекту типа с именем LOGGER

Другие вопросы по теме