gpt4 book ai didi

python - 在 Python 中如何将一个公共(public)对象传递给不同的模块文件

转载 作者:太空狗 更新时间:2023-10-30 02:24:49 25 4
gpt4 key购买 nike

我有各种模块文件,并且想与它们中的每一个共享一个公共(public)对象(在本例中是一个 logger)。做这个的最好方式是什么?我有一个解决方案,但感觉不太对。

在伪代码中:

module_1.py

global logger

# module_1

def pass_logger_module1(plogger):
global logger
logger = plogger

module_2.py

global logger

# module_2

def pass_logger_module2(plogger):
global logger
logger = plogger

main_module.py

from module_1 import pass_logger_module1
from module_2 import pass_logger_module2

logger = set_logger(logfile, logformat, 'DEBUG')

pass_logger_module1(logger)
pass_logger_module2(logger)

最佳答案

正如评论中所指出的,这不是使用 logging 模块的方式。

但是对于“不同模块文件的通用对象”的更一般的回答是从你的例子中反过来做,意思是:

main_module.py

# this is in global
logger = set_logger(logfile, logformat, 'DEBUG')

module_1.py

from main_module import logger

module_2.py

from main_module import logger

编辑:为了避免循环导入,可以将 logger 存储在不同的模块中:

settings.py

# this is in global
logger = set_logger(logfile, logformat, 'DEBUG')

main_module.py

from settings import logger

关于python - 在 Python 中如何将一个公共(public)对象传递给不同的模块文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51424054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com